ขอความช่วยเหลือครับ
กระทู้เก่าบอร์ด อ.Yeadram

 2,562   12
URL.หัวข้อ / URL
ขอความช่วยเหลือครับ

เนื่องจากผมได้ลองทำ Form ให้ใส่รหัสผ่าน และชื่อ เพื่อไป form ข้อมูล พร้อมให้ New add rec
ผมได้ลองเขียนแล้ว มันทำให้ทุกอย่าง แต่เมื่อเข้าไปยัง form new add แล้ว มันไปเพิ่ม run rec ใหม่เลย โดยที่ยังไม่ได้ใส่ข้อมูลลงไป ถ้าผมออกหรือปิด form มันก็จะ run เลขไปแล้ว (โดยจะเป็น ข้อมูลเปล่า)

ที่ผมเขียน
On Error GoTo Err_cmdAddNew_Click
    
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim USR As Variant
    Dim rst As Recordset
    Dim dbs As Database
    Set dbs = CurrentDb()
    Set rst = dbs.OpenRecordset("SELECT * FROM 1_userpasword1_form" & _
                             " WHERE username1='" & user_name1 & "'")
    If Not rst.EOF Then
        UserLogin = rst!username1
        stDocName = "1_Doc_in_formAdd"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        DoCmd.GoToRecord , , acNewRec
        Forms("1_Doc_in_formAdd").Controls("at_username") = [user_name1]
    Else
        Beep
        MsgBox "ªชื่อหรือรหัสผ่านไม่ถูกต้อง!", 0, "แจ้งให้ทราบว่า"
    End If
          
Exit_cmdAddNew_Click:
    Exit Sub

Err_cmdAddNew_Click:
    MsgBox Err.Description
    Resume Exit_cmdAddNew_Click

End Sub

จาก การเขียนข้างต้น ไม่ทราบว่ามีส่วนไหนผิด หรือต้องเขียนเพิ่มอย่างไร
และต้องเพิ่มในส่วนไหนบ้างครับ
ขอให้ท่าน อ. หรือ ท่านผู้รู้ ช่วยหน่อยครับ

ความต้องการ...
เมื่อใส่รหัสผ่าน หรือ ชื่อ แล้ว คลิ๊กปุ่มไปยัง form new add แล้ว
ยังไม่ให้เพิ่ม run rec ต้องมีการใส่ข้อมูลลงไปก่อน และถ้าผมออกหรือปิด ก่อนใส่ข้อมูล ก็จะไม่มีการ Run rec

หมายเหตุ ถ้าอธิบายไม่เข้าใจ หรือ อยากทราบส่วนอื่นเพิ่ม ช่วยบอกด้วยครับ

ขอบคุณ

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

1 @R14053
บรรทัดนี้ DoCmd.GoToRecord , , acNewRec มันสั่งขึ้น เรคคอดใหม่
ผมว่าเอาบรรทัดนี้ออก แล้วสร้างปุ่ม เพื่อนเพิ่มเรคคอดใหม่ดีกว่าครับ
2 @R14055
คุณUnครับ
ช่วยเตือนผมด้วยเอาตัวอย่างนี้ไปในวันที่20ผมจะอธิบายให้ว่าAccess
ทำได้ง่ายๆที่คุณสมบัติของฟอร์ม
ครูต้อง
3 @R14056
ครับผม อาจารย์ต้อง
4 @R14057
Forms("1_Doc_in_formAdd").Controls("at_username") = [user_name1]
ไม่แน่ใจว่าบรรทัดนี้ของคุณหมายถึงการลงข้อมูลไปแล้วใช่หรือไม่
ลองเปลี่ยนเป็น

Forms("1_Doc_in_formAdd").Controls("at_username").DefaultValue = "'" & [user_name1] & "'"

และจำกัดเฉพาะเรคคอร์ดใหม่เท่านั้น ก็ควรใส่เงื่อนไข

If Me.NewRecord Then
    Forms("1_Doc_in_formAdd").Controls("at_username").DefaultValue = "'" & [user_name1] & "'"
End if

ไม่แน่ใจนะครับลองดู
5 @R14063
ต้องขอโทษด้วย ผมลืมบอกไปว่า ชื่อ ของรหัสผ่าน จะไปฝังอยู่ใน ฟอร์ม1_Doc_in_formAdd ด้วย ชื่อฟิวท์ คือ at_username ซึ่งผมลองทำตามคุณ TTT แล้ว มันผ่านให้ แต่เมื่อลงข้อมูลแล้ว ชื่อรหัสผ่านมันไม่มาด้วย ผมจะต้องทำอย่างไรต่อดีครับ
ที่ผมแก้ไขไป
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim USR As Variant
    Dim rst As Recordset
    Dim dbs As Database
    Set dbs = CurrentDb()
    Set rst = dbs.OpenRecordset("SELECT * FROM 1_userpasword1_form" & _
                             " WHERE username1='" & user_name1 & "'")
    If Not rst.EOF Then
        UserLogin = rst!username1
        stDocName = "1_Doc_in_formAdd"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        DoCmd.GoToRecord , , acNewRec
        If Me.NewRecord Then
     Forms("1_Doc_in_formAdd").Controls("at_username").DefaultValue = "'" & [user_name1] & "'"
End if
    Else
        Beep
        MsgBox "ªชื่อหรือรหัสผ่านไม่ถูกต้อง!", 0, "แจ้งให้ทราบว่า"
    End If
           
Exit_cmdAddNew_Click:
    Exit Sub

Err_cmdAddNew_Click:
    MsgBox Err.Description
    Resume Exit_cmdAddNew_Click

End Sub

ไม่ทราบจะถูกหรือไม่
จะต้องเพิ่มคำสั่งตรงไหนอีกครับ

ขอบคุณมากครับ
6 @R14067
โทษที กรณี Me. หมายถึงฟอร์มที่เรียก ไม่ใช่ฟอร์มที่เปิด ดังนั้นมันจึงมองเป็นไม่ใช่หน้า NewRecord

If Me.NewRecord Then
    Forms("1_Doc_in_formAdd").Controls("at_username").DefaultValue = "'" & [user_name1] & "'"
End if

เปลี่ยนเป็น

If Forms("1_Doc_in_formAdd").NewRecord Then
    Forms("1_Doc_in_formAdd").Controls("at_username").DefaultValue = "='" & [user_name1] & "'"
End if
7 @R14141
ผมได้ลองตาม คุณ TTT แนะนำแล้ว เมื่อคลิ๊กปุ่มจาก ฟอร์ม Password มันก็ขึ้น Form NewAdd ข้อมูล (ชื่อ 1_Doc_in_formAdd) แต่มันจะมีหน้าต่างซ้อนขึ้นมาบอกว่า "Object doesn't support this property or method"
ซึ่งผมก็ไม่ทราบว่ามันไม่สนับสนุนหรือวิธีตรงไหนครับ "งง" กรุณาช่วยเหลือต่อด้วยครับ

ภาพที่ เป็นภาพ Form Password คลิ๊กที่ปุ่ม "ออกใบสำคัญรับเงินใหม่" ก็จะขึ้นภาพ Form NewAdd ข้อมูลใหม่ (ชื่อ 1_Doc_in_formAdd) แต่จะมีหน้าต่างซ้อนเกิดขึ้น โปรดช่วยเหลือด้วยครับ
8 @R14142
ขอโทษครับโหลดผิด ภาพที่1 คือภาพนี้


ภาพที่ 2
9 @R14143
โหลดผิดอีกแล้ว เอาใหม่ ภาพที่1 คือ
...
10 @R14144
อ้าง Property ใน Object ผิดครับ อะไรซักอย่าง เช่น

ฟิลด์ at_username และ user_name1 คุณเป็นอะไรครับ Text Box หรือ Label หรือ...

ถ้า ฟิลด์ user_name1 เป็น Label ก็ต้องอ้าง Property Caption ด้วยถึงอ่านค่าออก

    Forms("1_Doc_in_formAdd").Controls("at_username").DefaultValue = "'" & [user_name1].Caption & "'"

อะไรประมาณนี้ครับ ลองตรวจสอบชนิด Object บนฟอร์มดู แล้วอ้างอิงให้ถูกครับ
11 @R14166
ขอขอบคุณ คุณ TTT มากครับ ทำได้แล้วครับ ผมได้ความรู้เพิ่มอีกแล้ว

แต่ผมขอถามเพิ่มอีกหน่อยครับ ในฟอร์ม NewAdd ข้อมูล (1_Doc_in_formAdd) ภาพที่ 2 ผมมีปุ่มเพิ่มข้อมูลใหม่อยู่ด้วย ถ้าผมคลิ๊กปุ่มนี้แล้ว ยังจะให้ ชื่อpassword ยังคงทำหน้าที่เดิมอยู่ คือมาฝังตัวอยู่ในข้อมูลใหม่ด้วยนั้น ผมต้องเขียนคำสั่งที่ปุ่มเพิ่มข้อมูลใหม่อย่างไรบ้างครับ
โปรดช่วยเหลืออีกหน่อยนะครับ
ขอขอบคุณมาก ๆ ครับ
12 @R14169
ทำได้แล้วครับ ขอขอบคุณ คุณ TTT มากครับ

ผมได้ความรู้จากบอร์ดนี้มาก

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