แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - SakDa

หน้า: [1] 2 3 4 ... 7
1
ในรีพอร์ต มีบางช่องรายการที่แสดงเลขประจำตัวประชาชน 13หลัก ทีนี้หนูอยากให้แสดง x แทนตัวเลขบางตัวสามารถทำได้ไหมคะ เช่น
1-xxxx-23456-xx-9
ขอบคุณค่ะ
ผมสมมุติเชื่อฟิลล์ที่มีเลขบัตรประชาชนชื่อ
PersonalID

ถ้ารูปแบบของข้อมูล เลขบัตรประชาชนเป็นแบบนี้
1-2345-67899-85-3
ใช้โค้ดแบบนี้ได้เลย
โค๊ด: [Select]
PID: Left([PersonalID],1) & "-xxxx-" & Mid([PersonalID],8,5) & "-xx-" & Mid([PersonalID],17,1)

ถ้าเลขบัตรประชาชนมีเฉพาะตัวเลขเช่น
1234567899853
ใช้โค้ดแบบนี้ได้เลย
โค๊ด: [Select]
PID: Left([PersonalID1],1) & "-xxxx-" & Mid([PersonalID1],6,5) & "-xx-" & Mid([PersonalID1],13,1)
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

2
ห้อง MS Access / : การเก็บข้อมูล user ,password
« เมื่อ: 19 ม.ค. 65 , 18:18:44 »
เรียกใช้เมื่อต้องใช้ พอใช้เสร็จก็ Drop Table ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

3
ใช้ Loop ในการต่อประโยค โดยแสดงฟิลล์ชื่อ ตามเลขที่ๆมีอยู่ในห้องนั้น

คล้ายๆ กับโพสนี้นะครับ
https://www.thai-access.com/index.php?topic=1090.msg4873#msg4873
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

4
ตามไฟล์ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

5
ต้องแจ้งในไลน์กลุ่มเพื่อให้คนฉีดวัคซีนเข้าไป่ตอบแบบสอบถามอาการที่เกิดหลังจากฉีดวัคซีน
อยากรู้ว่าในระบบประเภททำข้อมูลประเภทแจ้งการเตือน นัดหมาย เขานิยมเก็บกันในฐานข้อมูลแบบไหนครับ

แนะนำให้ใช้ Google Form ครับ

โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

6
docmd.runsql "Delete from BB where รหัส not in (select รหัส from AA)"
หรือ สร้าง Delete คิวรี่ จากตาราง BB ตรงฟิวด์รหัส ใส่ criteria not in (select รหัส from AA)
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

7


ไม่ทราบว่าต้องเขียน VBA ไปทางไหนหรอครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

8
สรุปแล้วคือ ต้องเทียบอายุกับวันเป้าหมายถูกไหมครับ

ไฟล์นี้แก้ไข Bug เนื่องจากพบว่าโปรแกรมไปหยิบเอาข้อมูลจากเรคอร์ดสุดท้ายมาใส่เรคอร์ดแรก
และผมเพิ่มช่องใส่วันที่ด้วย ให้ใส่ตามรูปตัวอย่างนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

9
อ่านหลายรอบ ก็ไม่เข้าใจว่าต้องการอะไร นอกจากอายุน้อยกว่า 12 แม้แต่วันเดียวไม่เอา หรือ มากกว่า 18 ปี แม้แต่วันเดียวก็ไม่เอา

อันนี้เป็นไฟล์ที่ผมใส่ VBA เข้าไปในคำนวณเทียบกับวันปัจจุบันนะครับ
1. ให้เปิดฟอร์ม frmStudentAge แล้วคลิก Process1 ตามด้วย Process 2
2. ข้อมูลที่แยกช่วงอายุ จะอยู่ในคิวรี qryAllowAge

ไฟล์นี้ผมใช้ Access 365 ทำนะครับ
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

10
=IIf([หมู่ที่]="-"," ",IIf([หมู่ที่]<>"","ม."&[หมู่ที่],""))
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

11
ขอบคุณมากครับ ทำได้แล้วครับ
 :nice day: :nice day: :nice day: :in love: :in love: :in love:
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

12
ห้อง MS Access / : ขอเพิ่มโค๊ตค้นหา
« เมื่อ: 24 ส.ค. 64 , 20:19:10 »
ไฟล์ตัวอย่างครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

13
เวลาที่เราเปิดรายงานในมุมมองออกแบบ ถ้าเอกสารมีขนาดใหญ่กว่ากระดาษที่เราตั้งค่าไว้ จะมีมุมเขียวแสดงอยู่ที่มุมบนด้านซ้ายแบบนี้


วิธีการแก้ปัญหามีหลายแบบ เลือกตามความเหมาะสม
1. เปลี่ยนขนาดกระดาษเช่น A4 เป็น A3
2. ดึงขอบกระดาษด้านซ้ายให้หน้ากระดาษแคบลง
3. ปรับตำแหน่งของคอนโทรลต่างๆ ให้กระชับ แล้วค่อยปรับขนาดกระดาษในข้อ 2

ทำจนมุมเขียวหายไป ก็ไม่เกิดปัญหาแล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

14
ห้อง MS Access / : Random ข้อมูล
« เมื่อ: 24 พ.ค. 64 , 09:54:46 »
ถ้าใช้การสร้างปุ่มแทนได้ไหมครับ
สมมุติมีตารางตารางชื่อ table1 เก็บข้อมูลตามในรูปของคุณ
ที่ปุ่มใส่โค๊ดนี้เข้าไปครับ


Private Sub Command1_Click()
Dim rstRandom As Recordset
Dim rstOut As Recordset
Set rstRandom = CurrentDb.OpenRecordset("SELECT Table1.TCC, Rnd(Val(Right([TCC],3))) AS ID FROM Table1 ORDER BY Rnd(Val(Right([TCC],3)));", dbOpenDynaset)
Set rstOut = CurrentDb.OpenRecordset("table1", dbOpenDynaset)

rstRandom.MoveFirst
rstOut.MoveFirst
Do Until rstRandom.EOF
rstOut.Edit
rstOut!TCCRANDOM = rstRandom!TCC
rstOut.Update
rstRandom.MoveNext
rstOut.MoveNext
Loop
End Sub

วิธีนี้ใช้ ฟังชั้น RND() เพื่อสุ่มข้อมูลที่ต้องการ แล้วนำไปวางสุ่มในฟิลล์ที่ต้องการครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

15
ลองสร้างปุ่มขึ้นมาแล้วเอาโค้ดไปวางดูนะครับ

โค๊ด: [Select]
Private Sub Command0_Click()
Dim RecCount As Integer
Dim i, x As Long
Dim rst As dao.Recordset
RecCount = DCount("*", "TempToPrint")

Set rst = CurrentDb.OpenRecordset("TempToPrintWithStickerNo", dbOpenDynaset)
rst.MoveFirst

Do Until rst.EOF Or rst.BOF
For i = 0 To (RecCount - 1)

If i = 0 Then
x = 1
End If

rst.Edit
rst!stickerNo = x
rst.Update

rst.MoveNext
x = x + 1
If x > 52 Then
x = 1
End If

Next i
Loop
End Sub

แล้วดูการรันลำดับที่ตาราง TempToPrintWithStickerNo
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

16
ผมลองสร้าง รายงานโดย
ที่ตัวรายงานก็ออกแบบโดยใส่ Textbox ไว้ 56 อัน โดยสามารถตั้งชื่อไว้เช่น

L1C1   L1C2    L1C3    L1C4
L2C1   L2C2    L2C3    L2C4
L3C1   L3C2    L3C3    L3C4
...............................L14C4


และในEvent Report_Load ผมใส่โค้ดเข้าไป
โค๊ด: [Select]
Private Sub Report_Load()
Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT [56].l_details, [56].LandC, [56].Print FROM 56 WHERE ((([56].Print)=True));", dbOpenDynaset)
   
    rst.MoveFirst
    Do Until rst.EOF
    If Not IsNull(rst!LandC) Then
    Me(rst!LandC) = rst!l_details
    End If
        rst.MoveNext
    Loop
   
End Sub
โดยเรากำหนด Recordsource ให้เอาเฉพาะ ข้อมูลที่ Print = true หรือถูกติ๊กเลือกอยู่มาเท่านั้น
และใช้ If กำหนด ว่าถ้า LandC นั้นมีอยู่
ก็ให้ textbox  Me(rst!LandC) ที่มีชื่อเหมือนกับ LandC ของตารางนั้นนำค่า l_details ลงไปแสดงที่ textbox นั้น

ไม่แน่ใจว่าท่านต้องการแบบนี้ไหมลองดูตัวอย่างนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

หน้า: [1] 2 3 4 ... 7