Page 1 of 1

VBA สร้าง userform เพื่อให้ผู้ใช้งานกรอกรหัสผ่าน

Posted: Thu Mar 19, 2015 11:46 am
by DhitiBank
สวัสดีอาจารย์และเพื่อนๆ สมาชิกครับ

ผมต้องการทำ userform เพื่อให้ผู้ใช้กรอกรหัสผ่าน หากถูกต้องก็จะให้รันโค้ดต่อไปได้ ผมเขียนโค้ดเพื่อให้เรียก Userform1 จาก Module1 โดยกำหนดให้ตัวแปร tTextbox คอยรับรหัส แต่ปัญหาคือ พอใส่รหัสผ่านเสร็จแล้วกลับมาที่ Module1 กลายเป็นว่าตัวแปร tTextbox ไม่มีการรับค่ารหัสเลย ผมต้องปรับโค้ดอย่างไรดีครับ
โค้ดที่ Module1

Code: Select all

Dim tTextbox As String
Sub Button1_Click()
    UserForm1.Show
    If tTextbox <> "1234" Then Exit Sub
    MsgBox "Congratulation!!!"
End Sub
โค้ดที่ Userform1

Code: Select all

Private Sub CommandButton1_Click()
    tTextbox = UserForm1.TextBox1.Text
    Unload UserForm1
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        Cancel = True
    End If
End Sub
ลองตั้ง Add Watch เพื่อติดตามตัวแปร tTextbox ก็ไม่เห็นจะรับค่า 1234 มาเลย ผมต้องแก้ไขอย่างไรครับ

ขอบพระคุณครับ

Re: VBA สร้าง userform เพื่อให้ผู้ใช้งานกรอกรหัสผ่าน

Posted: Fri Mar 20, 2015 1:15 am
by snasui
:D ประกาศตัวแปรใหม่เป็น Public tTextbox As String เนื่องจากใช้ข้าม Module ตัวแปรต้องเป็นระดับ Public จึงจะใช้ข้าม Module ได้ครับ

Re: VBA สร้าง userform เพื่อให้ผู้ใช้งานกรอกรหัสผ่าน

Posted: Fri Mar 20, 2015 7:18 am
by DhitiBank
ขอบคุณมากๆครับอาจารย์ เดี๋ยวพรุ่งนี้มารายงานผลครับ

Re: VBA สร้าง userform เพื่อให้ผู้ใช้งานกรอกรหัสผ่าน

Posted: Sun Mar 22, 2015 3:31 pm
by DhitiBank
ทดลองแล้ว ได้ผลเป็นที่ต้องการแล้วครับ โดยปรับโค้ดสำหรับ userform1 เป็นดังนี้

Code: Select all

Private Sub CommandButton1_Click()
    Unload UserForm1
End Sub

Private Sub TextBox1_Change()
    tTextbox = UserForm1.TextBox1.Text
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then
        Cancel = True
    End If
End Sub
ขอบพระคุณครับ