กระทู้เก่าบอร์ด อ.Yeadram
1,608 4
URL.หัวข้อ /
URL
ตรวจสอบข้อมูล และแสดง msgbox ซ้ำ หรือไม่ซ้ำ
รบกวนอาจารย์ทุก ๆ ท่าน และ ผู้รู้ทุก ๆ ท่านครับ
คือผมเขียนฐานข้อมูลเกี่ยวกับผู้เข้าอบรมโครงการ ซึ่งโครงการจัดมาก็ 3 ปีแล้วแต่ไม่มีการทำฐานข้อมูลเลย ผมเลยทำฐานข้อมูลขึ้นมาเพื่อเก็บข้อมูลเหล่านี้ให้หน่วยงาน
ประเด็นที่ติดปัญหาคือ ผมต้องการเพิ่มข้อมูลผู้เข้าอบรม ซึ่งมีจำนวนมาก รวม ๆ แล้ว 1000+ กว่ารายชื่อ แต่ใน 1000+ มีชื่อนามสกุลซ้ำ (ที่เคยเข้าร่วมโครงการอื่น ๆ มาแล้ว) ถ้าคาดเดาแล้วไม่เกิน 300 รายชื่อครับ
สิ่งที่ต้องการให้ช่วย คือ ผมทำฟอร์มเพิ่มข้อมูลผู้เข้าร่วมอบรมเรียบร้อย และสามารถเพิ่มข้อมูลได้ มี ID Cname Csurname (คร่าว ๆ นะครับ) และเขียนโค้ดดังนี้
ค้นหาชื่อ และ นามสกุล หากมีอยุ่แล้ว ให้แสดง ซ้ำ ที่ textbox91
หากยังไม่มีข้อมูล ให้แสดง ไม่ซ้ำ ที่ textbox91
If IsNull(Me.CNAME1) Then อันนี้ผมเช็คค่าว่างในช่อง textbox ครับ
MsgBox ("กรุณาระบุชื่อ")
Exit Sub
Else
---------------------------------------------------------------------------------------
Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("select CNAME from Customer")
If rst![CNAME] = Me.CNAME Then
Me.Text91.Value = ("ซ้ำ")
Exit Sub
Else
Me.Text91.Value = ("ไม่ซ้ำ")
Exit Sub
End If
End If
---------------------------------------------------------------------------------------
ลักษณะข้อมูลในตาราง
id Cname Csurname
01 aaaa a1a1
02 bbbb b1b1
03 cccc c1c1
ปัญหา เมื่อค้นหาแล้ว โดยพิมพ์ aaaa ที่ textbox ชื่อ CNAME มันแสดงว่า ซ้ำ
แต่เมื่อพิมพ์ bbbb หรือ cccc ที่ CNAME จะแสดงว่า ไม่ซ้ำ
ผมเข้าใจว่า เพราะไม่มีคำสั่งวนลูปในการค้นหา เลยตรวจสอบแค่บรรทัดเดียว
จึงอยากให้อาจารย์ และ ผู้รู้ทุก ๆ ท่าน แนะนำการเขียนคำสั่ง ตรวจสอบซ้ำ ๆ ให้หน่อยครับ รบกวนทุก ๆ ท่านครับ ขอบคุณมาก ๆ ครับ (ยาวไปนิด จะงงอะป่าวนะ 555)
คือผมเขียนฐานข้อมูลเกี่ยวกับผู้เข้าอบรมโครงการ ซึ่งโครงการจัดมาก็ 3 ปีแล้วแต่ไม่มีการทำฐานข้อมูลเลย ผมเลยทำฐานข้อมูลขึ้นมาเพื่อเก็บข้อมูลเหล่านี้ให้หน่วยงาน
ประเด็นที่ติดปัญหาคือ ผมต้องการเพิ่มข้อมูลผู้เข้าอบรม ซึ่งมีจำนวนมาก รวม ๆ แล้ว 1000+ กว่ารายชื่อ แต่ใน 1000+ มีชื่อนามสกุลซ้ำ (ที่เคยเข้าร่วมโครงการอื่น ๆ มาแล้ว) ถ้าคาดเดาแล้วไม่เกิน 300 รายชื่อครับ
สิ่งที่ต้องการให้ช่วย คือ ผมทำฟอร์มเพิ่มข้อมูลผู้เข้าร่วมอบรมเรียบร้อย และสามารถเพิ่มข้อมูลได้ มี ID Cname Csurname (คร่าว ๆ นะครับ) และเขียนโค้ดดังนี้
ค้นหาชื่อ และ นามสกุล หากมีอยุ่แล้ว ให้แสดง ซ้ำ ที่ textbox91
หากยังไม่มีข้อมูล ให้แสดง ไม่ซ้ำ ที่ textbox91
If IsNull(Me.CNAME1) Then อันนี้ผมเช็คค่าว่างในช่อง textbox ครับ
MsgBox ("กรุณาระบุชื่อ")
Exit Sub
Else
---------------------------------------------------------------------------------------
Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("select CNAME from Customer")
If rst![CNAME] = Me.CNAME Then
Me.Text91.Value = ("ซ้ำ")
Exit Sub
Else
Me.Text91.Value = ("ไม่ซ้ำ")
Exit Sub
End If
End If
---------------------------------------------------------------------------------------
ลักษณะข้อมูลในตาราง
id Cname Csurname
01 aaaa a1a1
02 bbbb b1b1
03 cccc c1c1
ปัญหา เมื่อค้นหาแล้ว โดยพิมพ์ aaaa ที่ textbox ชื่อ CNAME มันแสดงว่า ซ้ำ
แต่เมื่อพิมพ์ bbbb หรือ cccc ที่ CNAME จะแสดงว่า ไม่ซ้ำ
ผมเข้าใจว่า เพราะไม่มีคำสั่งวนลูปในการค้นหา เลยตรวจสอบแค่บรรทัดเดียว
จึงอยากให้อาจารย์ และ ผู้รู้ทุก ๆ ท่าน แนะนำการเขียนคำสั่ง ตรวจสอบซ้ำ ๆ ให้หน่อยครับ รบกวนทุก ๆ ท่านครับ ขอบคุณมาก ๆ ครับ (ยาวไปนิด จะงงอะป่าวนะ 555)
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R20750
If IsNull(Me.CNAME1) Then อันนี้ผมเช็คค่าว่างในช่อง textbox ครับ
MsgBox ("กรุณาระบุชื่อ")
Exit Sub
Else
Dim MySQL AS String
MySQL="select CNAME from Customer " & _
"Where CName = '" & Me.CName1 & "' "
Set rst = CurrentDb.OpenRecordset(MySQL)
'กรณีไม่พบ
If rst.RecordCount <=0 then
Me.Text91.Value = ("ไม่ซ้ำ")
Exit Sub
Else 'กรณีพบ
Me.Text91.Value = ("ซ้ำ")
Exit Sub
Endif
rst.close :Set rst=Nothing
Endif
MsgBox ("กรุณาระบุชื่อ")
Exit Sub
Else
Dim MySQL AS String
MySQL="select CNAME from Customer " & _
"Where CName = '" & Me.CName1 & "' "
Set rst = CurrentDb.OpenRecordset(MySQL)
'กรณีไม่พบ
If rst.RecordCount <=0 then
Me.Text91.Value = ("ไม่ซ้ำ")
Exit Sub
Else 'กรณีพบ
Me.Text91.Value = ("ซ้ำ")
Exit Sub
Endif
rst.close :Set rst=Nothing
Endif
3 @R20751
อื่มอ่านคราวๆ เอาเป็นว่าถ้าคุณแยกชื่อ กับนามสกุลคนละฟิลด์ ต้องทำสองเงื่อนไขคือ ชื่อและนามสกุลต้องซ้ำกัน เขียนเป็นแบบนี้ก็ได้ครับ
If DCount("CName", "Table1", "CName = '" & Me.text1 & "' " & "AND CSurName = '" & Me.Text2 & "'") > 0 Then
MsgBox "ซ้ำ"
Else
MsgBox "ไม่ซ้ำ"
End If
ปล. คำถามนี้มีถามกันเยอะ ลองหาอ่านกระทู้เก่าๆดูอาจได้แบบที่ต้องการนะครับ
If DCount("CName", "Table1", "CName = '" & Me.text1 & "' " & "AND CSurName = '" & Me.Text2 & "'") > 0 Then
MsgBox "ซ้ำ"
Else
MsgBox "ไม่ซ้ำ"
End If
ปล. คำถามนี้มีถามกันเยอะ ลองหาอ่านกระทู้เก่าๆดูอาจได้แบบที่ต้องการนะครับ
4 @R20818
ขอบคุณมาก ๆ ครับ ผมค้นหาในเว็บนี้ แต่ก็ไม่เจอ เลยโพสแทนนะครับ (อาจเพราะใช้ คำค้นไม่ตรงเลยหาไม่พบครับ
ขอบคุณอีกครั้งครับ ^^
ขอบคุณอีกครั้งครับ ^^
Time: 0.3674s
แล้วแบบนี้ควรเขียนโค้ดค้นหาอย่างไรดีครับ รบกวนทุก ๆ ท่านครับ ขอบคุณครับ