แสดงกระทู้

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 - Tatchawin

หน้า: 1 [2] 3 4 5
19
Ok ครับ เดี๋ยวรอนะครับ อิอิ

20
ขอแนบไฟล์ส่งมาตามนี้นะครับผม ไหนๆก็ไหนๆแล้ว ผมอยากให้ Sort ได้ทั้ง lstYearSort, lstMonthSort, lstWorkGroup, lstDepartment และ lstSection

ยังไง ถ้าท่านแก้ให้ filter ได้หมดนี้ ก็ดีนะครับ อิอิ

ขอบคุณล่วงหน้าครับ :D

21
ขอบคุณคุณ PNR มากๆครับผม

22
สวัสดีครับทุกท่าน ผมต้องการทำ Multiple filter ด้วย Listbox หลายๆอันครับ ให้ Filter ได้ตามเงื่อนไขที่เลือกเลย
โดยผมเขียนโค้ดตามด้านล่างนี้ แล้วลอง filter ดู จากภาพ
1. ที่ Field MonthNum ผมต้องการเลือก Record ของเดือน 9 (September)
2. ที่ Field WorkGroup ผมต้องการเลือก “งานอื่นๆ”

แต่ผลลัพท์คือ ไปเอา “งานอื่นๆ” ของเดือนอื่นมา ซึ่งผมต้องการของเดือน 9 เท่านั้น(ซึ่งผลลัพธ์ที่ถูกต้อง จะต้องไม่มีของเดือน 9 โผล่มา เพราะไม่มี”งานอื่นๆ” ในเดือน 9) ผมจะต้องเพิ่มเติม Code อย่างไรให้ Filter ทำงานทั้งสองตัวครับ

ขอบคุณล่วงหน้าครับผม


Private Sub lstMonthSort_AfterUpdate()
    Call Search1
End Sub
--------------------------------------------------------------------------------------------------------
Sub Search1()
Dim varItem As Variant
Dim strsearch As String
Dim Task As String

Me.FilterOn = True
For Each varItem In Me!lstMonthSort.ItemsSelected
    strsearch = strsearch & "," & Me!lstMonthSort.ItemData(varItem)
Next varItem
'MsgBox (strSearch)
    If Len(strsearch) = 0 Then
        Task = "SELECT * FROM qryPerday"
        Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
    Else
        strsearch = Right(strsearch, Len(strsearch) - 1)
        'MsgBox (strSearch)
        Task = "SELECT * FROM qryPerDay WHERE ([MonthNum] in (" & strsearch & "))"
        Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
    End If
End Sub
--------------------------------------------------------------------------------------------------------
Private Sub lstWorkGroup_AfterUpdate()
    Call Search2
End Sub
--------------------------------------------------------------------------------------------------------
Sub Search2()
Dim varItem As Variant
Dim strsearch As String
Dim Task As String

Me.FilterOn = True
For Each varItem In Me!lstWorkGroup.ItemsSelected
    strsearch = strsearch & "," & Me!lstWorkGroup.ItemData(varItem)
Next varItem
'MsgBox (strSearch)
    If Len(strsearch) = 0 Then
        Task = "SELECT * FROM qryPerday"
        Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
    Else
        strsearch = Right(strsearch, Len(strsearch) - 1)
        'MsgBox (strSearch)
        Task = "SELECT * FROM qryPerDay WHERE ([WorkGroup] in (" & strsearch & "))"
        Forms!frmManpower1!frmqryPerDay.Form.RecordSource = Task
    End If
End Sub

23
ขอสอบถามเพิ่มเติมครับ จากภาพ Combo Box cbNationalID ใน Subform จะถูกกรองตาม cbPlantID บน Mainform ตามที่เลือก
หากผมต้องการเขียน expression ที่ Properties ของ Row source ให้กรองว่าหากเลือก cbPlantID = 5 แล้ว cbNationalID จะไม่ต้องถูกกรองตาม
แต่ถ้าเปลี่ยน cbPlantID เป็นเลขอื่นจะกรองหมด จะต้องเขียนอย่างไรครับ

ขอบคุณล่วงหน้าสำหรับคำตอบครับ

24
ได้แล้วครับ เส้นผมบังภูเขาแท้ๆ ผมไปเผลอเปลี่ยนชื่อ Control นี่เอง ลืมไป  :XD:
ขอบคุณมากครับ

25
มันขึ้นว่า หา Subform ไม่เจอครับ ตามภาพ ผมลองทำแบบอยู่บน Main Form มันก็ทำได้นะครับ งงมาก

26
สวัสดีครับ

สอบถามปัญหาตามหัวข้อเลยครับ ผมต้องการให้ Combo box ใน Subform Requery หลังจากที่เราเปลี่ยนแปลงค่า Combo box ใน Mainform ครับ
พยายาม Reference ไปที่ combo box ใน Text Form เท่าไหร่ก็ไม่ได้สักที ยังไงช่วยแก้ให้หน่อยนะครับ

ขอบคุณครับ
ปล. โค้ดที่ผมเขียนอยู่ด้านล่างครับ ลอง reference หลายๆแบบ ก็ยังไม่ได้

Private Sub txtPlantID_AfterUpdate()
'    Me.Forms![frmqryCardDetail]![txtNationalID].requey
'    Forms![frmCreateCard]![frmqryCardDetail].Form![txtNationalID].Requery
'    Me.[frmSubEditWork3].[Form]![txtNationalID].Requery
'    Forms!frmqryCardDetail!txtNationalID.Requery
'    Me!frmqryCardDetail.Form.txtNationalID.Requery
'    Me!frmqryCardDetail.Form!txtNationalID.Requery
'    Forms![frmCreateCard]![frmqryCardDetail].Form![txtNationalID].Requery
'    Forms![frmCreateCard]![frmqryCardDetail]![txtNationalID].Requery

Form![frmqryCardDetail]![txtNationalID].requey
End Sub

27
สวัสดีครับ ขอสอบถามเรื่อง Code VBA ครับ

กำลังทำเรื่อง Form Login อยู่ ซึ่งจะต้องมีเรื่องการเปลี่ยน Password ด้วย ซึ่งผมต้องการทำให้หลังจากกดปุ่ม “เปลี่ยนรหัสผ่าน” แล้ว มีการแจ้งเตือน พร้อมส่ง Password ใหม่ไปที่ E-Mail ของแต่ละ User ครับ ผมลองหาวิธีการในยูทูปเพื่อที่จะประยุกต์แล้ว แต่ก็ไม่สามารถทำได้ ยังไงรบกวนช่วยดู Code ให้หน่อยนะครับ

Code ที่แนบมานี้เป็น Code การเปลี่ยน Password ล้วนๆครับ(Click ที่ปุ่ม “เปลี่ยนรหัสผ่าน”(cmdChange)) ไม่แน่ใจว่าจะต้องเขียนต่อจากนี้อย่างไร ผมเขียนๆลบๆอยู่นานเลย ไม่สำเร็จเสียที

รบกวนทุกท่านด้วยนะครับ
ขอบคุณล่วงหน้าครับ




Private Sub cmdChange_Click()
        If DLookup("Password", "tblUser", "UserLogin='" & Me.txtUserLogin & "'") = Me.txtOldPassword Then
            If Me.txtNewPassword & "" <> "" And Me.txtNewPassword <> Me.txtOldPassword Then
   nEmployee = DLookup("UserID", "tblUser", "UserLogin='" & Me.txtUserLogin & "'")
                Dim rs As DAO.Recordset
                Set rs = CurrentDb.OpenRecordset("tblUser", dbOpenDynaset)
                rs.FindFirst "[UserID]=" & nEmployee
                rs.Edit
                rs!Password = Me.txtNewPassword
                rs.Update
                rs.Close: Set rs = Nothing
                Me.txtUserLogin = ""
                Me.txtOldPassword = ""
                Me.txtNewPassword = ""
                MsgBox “เปลี่ยนรหัสผ่านเรียบร้อยแล้ว กรุณาใส่รหัสผ่านใหม่เมื่อ Login", , “เปลี่ยนรหัสผ่านแล้ว"
            Else
                MsgBox "กรุณาใส่รหัสผ่านใหม่ในช่องเปลี่ยนรหัสผ่าน", , “รหัสผิดพลาด"
            End If
        Else
            MsgBox “คุณอาจไม่ได้กรอก UserLogin, OldPassword, NewPassword หรือกรอกอย่างใดอย่างหนึ่งผิด โปรดตรวจสอบอีกครั้ง", , “เปลี่ยนรหัสผ่านไม่สำเร็จ"
        End If
End sub


28
ห้อง MS Access / : การใช้งาน SQL Server กับ MS Access
« เมื่อ: 28 ก.ย. 63 , 19:23:47 »
ขอบคุณครับผม

29
ห้อง MS Access / การใช้งาน SQL Server กับ MS Access
« เมื่อ: 22 ก.ย. 63 , 18:50:41 »
สวัสดีครับ ผมมีคำถามเกี่ยวกับการใช้งาน SQL Server กับ MS Access ดังนี้

1. เราสามารถดึง Query ที่เราทำไว้บน SQL Server มาใช้บน MS Access ได้หรือไม่ (เหมือนกับที่เราต่อ ODBC ดึง Table บน SQL มาใช้บน MS Access)

2. ถ้าเราทำ Query ไว้บน MS Access แต่เราต้องการจะย้าย Query นี้ ให้ทำการ Query ให้จบบน SQL Server แล้วค่อยดึง Query มาดูบน MS Access
(ให้ SQL ทำเรื่อง BackEnd ให้จบ ส่วน MS Access เป็นแค่ FrontEnd ไว้ดูผลลัพธ์เท่านั้น) อยากทราบว่า เราจะสามารถ Copy Code SQL
ที่อยู่บนหน้า SQL View ตอนทำ Query บน MS Access ไปใส่บน SQL แล้วทำการ Query บนนั้นได้ไหมครับ
(Query ที่ผมทำบน SQL มี Calculate Field เช่น
คำนวนอายุตัว อายุงาน รวมทั้ง Concatenate Field ด้วย เช่น เอา Field บ้านเลขที่,ตำบล,อำเภอ,จังหวัด มารวมกับเป็น Fieldใหม่ คือ Address ด้วย)

แบบนี้จะทำได้ไหมครับ


ขอบคุณมากครับ


30
ขอบคุณมากๆครับ ทำได้แล้วครับ

31
สวัสดีครับทุกท่าน ขอสอบถามปัญหาการเขียนโค้ด Event On Click ให้ Save แล้วมันดันเด้งวนไปที่ Event Before Update ครับ

คือผมทำฟอร์มขึ้นมา ชื่อ frmPunish ซึ่งก็จะมี Subform อยู่ด้านในอีก(สามารถดูได้จากไฟล์แนบครับ) พร้อมกับมีปุ่ม Save 2 ปุ่ม

1. Save New(cmdSave1): ไว้สำหรับเซฟ Record ใหม่ มีโค้ดดังนี้
Private Sub cmdSave1_Click()
    Me.Dirty = False
    DoCmd.SetWarnings False
    DoCmd.RunCommand acCmdSaveRecord
    Me.txtNationalID1 = Me.txtNationalID2
    Me.txtCreated = Now()
    Me.txtCreatedBy = GetUserName()
    MsgBox ("Your record has been successfully saved!")   
    DoCmd.SetWarnings True
    DoCmd.RefreshRecord
End Sub


2. Save New(cmdSave2): ไว้สำหรับเซฟการแก้ไขข้อมูลในแต่ละ Record มีโค้ดดังนี้
Private Sub cmdSave2_Click()
    Me.Dirty = False
    DoCmd.SetWarnings False
    Me.txtModified = Now()
    Me.txtModifiedBy = GetUserName()
    MsgBox ("Your record edited has been successfully saved!")
    DoCmd.SetWarnings True
    DoCmd.RefreshRecord
End Sub


ปัญหาคือ ไม่ว่าจะกดปุ่ม Save ใดก็ตาม มันจะวนมาที่ Event BeforeUpdate ทุกที ซึ่งผมเขียนโค้ดไว้เป็นเหมือนกับ prompt user saving
(ถ้ามีการเลื่อน Record หรือปิดหน้าต่างให้ถามก่อนว่าจะ Save Record นั้นหรือไม่ทุกครั้ง) ซึ่งผมต้องการแค่ว่าถ้ากดปุ่ม Save ใดๆก็ตาม
ให้มันจบแค่ Event On Click ไม่ต้องวนไปที่ Event BeforeUpdate (ซึ่งมันจะขึ้น Pop Up หลายๆครั้งมาก จนเกินไป)

จะมีวิธีใดแก้ปัญหาที่ผมเจอได้บ้าง หรือช่วยแก้โค้ดให้ผมได้ไหมครับ(ผมได้แนบไฟล์มา สามารถโหลดมาลองดูได้ เปิด frmPunish นะครับ)
ขอบคุณมากครับ

โค้ด Event BeforeUpdate
Private Sub Form_BeforeUpdate(Cancel As Integer)
   Dim ctl As Control
   Dim msg As String
   On Error GoTo Err_BeforeUpdate
   If Me.Dirty Then
        msg = (MsgBox("Are you sure you want to save change?", vbYesNo + vbQuestion, "Save Record"))
        If msg = vbNo Then
            Me.Undo
        End If
        If msg = vbYes Then
            If IsNull(Me.txtCreatedBy) And IsNull(Me.txtCreated) Then
                Me.txtNationalID1 = Me.txtNationalID2
                Me.txtCreated = Now()
                Me.txtCreatedBy = GetUserName()
                MsgBox ("Your record has been successfully saved!")
            Else
                txtModified = Now()
                txtModifiedBy = GetUserName()
                MsgBox ("Your record has been successfully saved!")
            End If
        End If
   End If
Exit_BeforeUpdate:
   Exit Sub
Err_BeforeUpdate:
   MsgBox Err.Number & " " & Err.Description
   Resume Exit_BeforeUpdate
End Sub

32
ขอบคุณครับ เดี๋ยวผมลองดูครับ เพิ่มเติมใดๆจะโพสถามนะครับ

33
สวัสดีครับ สอบถามปัญหาการใช้ SQL กับ MS Access ครับ

ผมเป็นมือใหม่ เพิ่งหัดใช้ SQL นะครับ วันนี้ทดลอง Import ข้อมูลใน SQL(มีอยู่ 539 Record)กำหนดให้ฟิล์ด ID
เป็น Primary Key (Is Identity=Yes) ต่อ ODBC มาดูบน MS Access ด้วย Form ที่สร้างไว้
ผมทดลองเพิ่มข้อมูลผ่าน Form บน MS Access นั้น(เกิดเป็น ID ที่ 540,541,542...) ก็ทำได้อยู่ครับ
แต่พอผมจะกลับมาแก้ Record ID ที่ 540,541,542 กลับทำไม่ได้ เกิดมาข้อความ Write Conflict ขึ้นมาแทน

แต่พอผมไปแก้ข้อมูลของ ID 1,2,3...(ที่มาจาก SQL Server โดยตรง ที่ไม่ได้เพิ่มบนฟอร์ม)กลับทำได้ ไม่ขึ้น Write Conflict

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

ขอบคุณมากครับ


34
ขอบคุณมากๆเลยครับ ทำได้แล้ว ผมลองแก้ไปแก้มาตะกี้ ก่อนโพสท่านสักแปป แบบนี้ก็ได้เหมือนกัน :D :)

Sub Search()
Dim varItem As Variant
Dim strSearch As String
Dim Task As String

Me.FilterOn = True
For Each varItem In Me!lstMonthSort.ItemsSelected
    strSearch = strSearch & "," & Me!lstMonthSort.ItemData(varItem)
Next varItem
'MsgBox (strSearch)
If Len(strSearch) = 0 Then
    Task = "select * from qryHRDWH"
    Forms!frmSelect!frmqryHRDWH.Form.RecordSource = Task
Else
    strSearch = Right(strSearch, Len(strSearch) - 1)
    'MsgBox (strSearch)
    Task = "select * from qryHRDWH where ([SortMonthNum] in (" & strSearch & "))"
    Forms!frmSelect!frmqryHRDWH.Form.RecordSource = Task
End If
End Sub

35
ขอบคุณมากครับ ทำได้แล้วครับ แต่ขอรบกวนอีกสักข้อได้ไหมครับ ผมพยายามแล้ว แต่งงมาก


จากภาพ ผมต้องการให้สามารถ Filter แบบ Multiple ได้หลายๆเดือน โดย filter ข้อมูลที่อยู่บน subform "frmqryHRDWH" ตามเดือน(SortMonthNum)โดยสั่งจาก Mainform ที่ชื่อ frmSelect ผมก็เขียนโค้ดได้ประมาณนี้

Private Sub cmdSearch2_Click()
    Call Search
End Sub
Sub Search()
Dim varItem As Variant
Dim strSearch As String
Dim Task As String

Me.FilterOn = True
For Each varItem In Me!lstMonthSort.ItemsSelected
    strSearch = strSearch & "," & Me!lstMonthSort.ItemData(varItem)
Next varItem
'MsgBox (strSearch)
If Len(strSearch) = 0 Then
    Task = "select * from qryHRDWH"
Else
    strSearch = Right(strSearch, Len(strSearch) - 1)
    'MsgBox (strSearch)
    Task = "select * from qryHRDWH where ([SortMonthNum] in (" & strSearch & "))"
End If
    DoCmd.ApplyFilter Task
End Sub

แต่สิ่งที่เกิดขึ้นคือ Error ตัวนี้ครับ


ผมคิดว่าน่าจะผิดตรง DoCmd.ApplyFilter Task น่าจะต้องอ้างอิงไปยัง Subform แต่ไม่รู้จะแก้ยังไง รบกวนช่วยแก้ทีนะครับ

รบกวนอีกครั้งครับ ขอบคุณมากครับ :D

36
สอบถามเพิ่มอีกนิดนึงครับ
ตรง DoCmd.RunSQL "INSERT INTO table.... ถ้าผมต้องการทำ combo box รายชื่อตารางทั้งหมดขึ้นมาเพื่อให้ผู้ใช้เลือก Insert ข้อมูลลงตารางที่เลือก ผมควรจะเขียนโค้ดอย่างไรให้ Insert ลงตามตารางที่ผู้ใช้เลือกบน Combo box ครับ

ขอบคุณมากครับ

หน้า: 1 [2] 3 4 5