ตรวจสอบข้อมูล และแสดง msgbox ซ้ำ หรือไม่ซ้ำ
กระทู้เก่าบอร์ด อ.Yeadram

 1,519   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)

4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R20749
ผมมานั่งคิดหลังทานข้าวมา ไม่ต้องวนลูปก็ได้นิ เพราะค้นหา ชื่อและนามสกุลพร้อมกัน หากมีแล้วให้แสดง msgbox ซ้ำ หากไม่มีก็แสดง msgbox ไม่ซ้ำ

แล้วแบบนี้ควรเขียนโค้ดค้นหาอย่างไรดีครับ รบกวนทุก ๆ ท่านครับ ขอบคุณครับ
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
3 @R20751
อื่มอ่านคราวๆ เอาเป็นว่าถ้าคุณแยกชื่อ กับนามสกุลคนละฟิลด์ ต้องทำสองเงื่อนไขคือ ชื่อและนามสกุลต้องซ้ำกัน เขียนเป็นแบบนี้ก็ได้ครับ

    If DCount("CName", "Table1", "CName = '" & Me.text1 & "' " & "AND CSurName = '" & Me.Text2 & "'") > 0 Then
        MsgBox "ซ้ำ"
    Else
        MsgBox "ไม่ซ้ำ"
    End If

ปล. คำถามนี้มีถามกันเยอะ ลองหาอ่านกระทู้เก่าๆดูอาจได้แบบที่ต้องการนะครับ
4 @R20818
ขอบคุณมาก ๆ ครับ ผมค้นหาในเว็บนี้ แต่ก็ไม่เจอ เลยโพสแทนนะครับ (อาจเพราะใช้ คำค้นไม่ตรงเลยหาไม่พบครับ

ขอบคุณอีกครั้งครับ ^^
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2629s