แสดงกระทู้

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

หน้า: 1 ... 29 30 31 [32] 33 34 35 ... 46
559
ต่อประโยคผิด คอมมา(,) ใส่ไม่ครบ

จริงด้วยครับหลายจุดเลย  :XD: :XD:

560
 DoCmd.RunSQL "INSERT INTO qryLean([SCGEmployeeID],[NamePrefixThai],[FirstNameThai],[LastNameThai],[NamePrefixEng],[FirstNameEng],[LastNameEng]," & _
        "[NickName],[Position],[SubShift],[Shift],[SubSection],[Section],[SubDepartment],[Department],[SubDivision],[Division],[SubCompany],[Company],[Birthdate]," & _
        "[SCGHiringDate],[SystemDateTime],[ImagePath],[Selection])" & _
        "SELECT qryHRDWH.SCGEmployeeID, qryHRDWH.NamePrefixThai, qryHRDWH.FirstNameThai, qryHRDWH.LastNameThai, qryHRDWH.NamePrefixEng" _
        & "qryHRDWH.FirstNameEng, qryHRDWH.LastNameEng, qryHRDWH.NickName, qryHRDWH.Position, qryHRDWH.SubShift, qryHRDWH.Shift, qryHRDWH.SubSection" _
        & "qryHRDWH.Section, qryHRDWH.SubDepartment, qryHRDWH.Department, qryHRDWH.SubDivision, qryHRDWH.Division, qryHRDWH.SubCompany, qryHRDWH.Company" _
        & "qryHRDWH.Birthdate, qryHRDWH.SCGHiringDate, qryHRDWH.SystemDateTime, qryHRDWH.ImagePath, qryHRDWH.Selection" & _
        "
FROM qryHRDWH Where qryHRDWH.Selection = -1"

ต่อประโยคผิดเปล่าครับ
มันต้อง ................" _
 แล้วก็ & "............."
หรือเปล่า

561
ห้อง MS Access / : บังคับให้ Run Notepad Full Screen
« เมื่อ: 03 เม.ย. 63 , 12:07:58 »
    Shell "Notepad.exe " & "D:\Warning.txt", vbNormalFocus
เปิดแล้ว บังคับให้เต็มเจอครับ 
มี Code ที่ทำให้เต็มเจอไหม

ใช้โค้ดอีกหน่อย
โค๊ด: [Select]
Shell "Notepad.exe " & "D:\Warning.txt", vbNormalFocus
Set oShell = CreateObject("WScript.Shell")
oShell.SendKeys "% x"

562
ชื่อ textbox ที่ระบุเลขประจำตัวประชาชนชื่อ label3 หรอครับตรวจสอบตรงนี้ด้วย
ชื่อตารางที่ตรวจสอบชื่อ Farmer หรือไม่
ชื่อฟิลล์ Person_Code ดูชื่อว่าตรงหรือไม่

563
ใช้ Function Replace ช่วยครับ

Private Sub TextboxName_AfterUpdate()
Dim strWord As String
If Not IsNull(Me.TextboxName) Then
strWord = Me.TextboxName
Me.TextboxName1 = Replace(Replace(Replace(strWord, "*", ""), "/", ""), "?", "")
End If
End Sub

564
ถ้าต้องการให้กรอกเฉพาะภาษาไทย หรือ กรอกเฉพาะภาษาอังกฤษ  ครับ

ทำแบบข้างบนละครับ ว่าเราต้องการคีย์ไหนบ้าง ถ้ามันอยู่เรียงกันก็ใช้ >= and <=  เพื่อลดจำนวนโค้ดได้ ถ้าอยู่ห่างๆกันใช้ Or มาช่วย
ถ้าอยากรู้ว่าตัวอักษรภาษาไทย ที่เรากดนั้น KeyAscii เลขอะไรก็ใส่โค้ดแบบนี้

Private Sub TextBoxName_KeyPress(KeyAscii As Integer)
     MsgBox KeyAscii
End Sub

แล้วจดไว้เพื่อนำมาเข้าเงื่อนไข ที่ต้องการ

565


ผมสมมุติบนฟอร์มมี textbox เก็บ ไอดีชื่อ txtID
มีฟิลล์ ID เป็น Primary Key

ที่แหลงควบคุม หรือ ControlSource ของ textbox ที่โชว์ตัวเลข ใส่โค้ดแบบนี้เข้าไปเช่น
=DLookUp("[Estimated TonCO2/Year]","[Q_0KADAIQ1]","[ID] =" & [txtID] & "")

โดยท่านต้องไปดูว่า Primary key ของคิวรี่นั้นตั้งไว้ชื่ออะไร datatype แบบไหน ถ้าแบบตัวเลขใช้ข้างบนได้เลย
ถ้าเป็นแบบตัวอักษร ใช้
=DLookUp("[Estimated TonCO2/Year]","[Q_0KADAIQ1]","[ID] ='" & [txtID] & "'")

566
เราจะเขียนโค๊ดอย่างไร เพื่อให้ใน textbox ไม่ให้พิมพ์ตัวอักษรต้องห้ามในการตั้งชื่อไฟล์ เช่น / * ? ครับ
สีแดงคือชื่อ textbox นะครับ
KeyAscii = 47 คือ /
KeyAscii = 42 คือ *
KeyAscii = 63 คือ ?


Private Sub TextboxName_KeyPress(KeyAscii As Integer)
If (KeyAscii = 47 Or KeyAscii = 42 Or KeyAscii = 63) Then
        KeyAscii = 0
        Else
        KeyAscii = KeyAscii
 End If
End Sub

ุถ้าอยากจะเพิ่มคีย์อื่นๆ อีกก็ดู ASCII Characters ในเว็บนี้ครับ
https://bettersolutions.com/vba/strings-characters/ascii-characters.htm


567
เอาโค้ดมาดูนะครับ
ว่ามีตรงไหน ทำงานซ้ำซ้อน หรือเปล่า หรือการอ้างอิงต่างๆ อาจจะขัดแย้งกัน
ต้องดูโค้ดครับ

568
ต้องการใช้คำสั่ง requery หลังจากอัปเดตข้อมูลในซับฟอร์ม จาก ฟอร์มหลักค่ะ
แบบที่คุณ UnKnown บอกเลยครับ

เป็นการใช้คำสั่ง  ต่อส่วนท้าย แบบนี้ก็ได้ครับ

โค๊ด: [Select]
Forms![ชื่อฟอร์มหลัก].Form.[ชื่อซัพฟอร์ม].Requery

569
อ้างถึง
ตอนผมจะเข้าไปแก้โค้ด ปรากฏว่าโปรแกรม มีอาการค้าง ไม่แน่ใจว่าตอนท่านแก้มีอาการค้างๆ หน่วงๆบ้างไหมครับ
ถ้าเปน เกิดจากการที่ผมโค้ดมัน จนมันทำงานหนักไปรึเปล่าครับ เท่าที่ท่านเหน

ไม่เจออาการหน่วงครับ

570
ข้อ 1 แก้เป็น
โค๊ด: [Select]
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM tblWorkforceY2020 WHERE (((tblWorkforceY2020.DepartmentID)=[forms]![frmWorkforce]![cbSearch1]) AND  ((tblWorkforceY2020.SectionID)=[forms]![frmWorkforce]![cbSearch2]));"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

หรือแบบนี้
โค๊ด: [Select]
Dim sql As String
     sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID]=" & Me.cbSearch1 & " AND [SectionID]=" & Me.cbSearch2 & ""

    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery

ข้อ 1 แนะนำให้ใช้แบบนี้
โค๊ด: [Select]
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID] Like '" & Nz(Me.cbSearch1, "*") & "' AND [SectionID] Like '" & Nz(Me.cbSearch2, "*") & "' AND [ShiftID] Like '" & Nz(Me.cbSearch3, "*") & "'"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub
Private Sub cbSearch1_AfterUpdate()
    SearchCombo
End Sub
Private Sub cbSearch2_AfterUpdate()
    SearchCombo
End Sub
Private Sub cbSearch3_AfterUpdate()
  SearchCombo
End Sub

ข้อที่ 2 แก้เป็นแบบนี้
โค๊ด: [Select]
DoCmd.OpenReport "rptCard1", acViewPreview, , "[Fulltime]='Fulltime' AND [CreateID] = " & Forms!frmCreateCard!txtCreateID

571
เอา single quote  ออกครับถ้าตัวเลข

Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE DepartmentID = " & Me.cbSearch1 & " And SectionID = " & Me.cbSearch2 & ""
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

572
Dim sql As Integer ต้องแก้เป็น  Dim sql As String นะครับ

Private Sub SearchCombo()
Dim SQL As String
SQL = "SELECT * FROM tblWorkforceY2020 WHERE [DepartmentID] = " & Me.cbSearch1
    Forms!frmWorkforce.RecordSource = SQL
    Forms!frmWorkforce.Requery
End Sub



573
ห้อง MS Access / : คำสั่ง Answer เกิด error
« เมื่อ: 15 มี.ค. 63 , 08:22:34 »
เพิ่มเป็น

Private Sub Command166_Click()
            On Error Resume Next
            Dim strSQL,Answer As String
            Answer = MsgBox("คุณแน่ใจเหรอว่าต้องการลบตารางคนมามอบตัวทิ้ง" & vbCrLf & "ตรวจสอบให้แน่ใจ เอาคืนไม่ได้" & vbCrLf & "กด yes = ยืนยันการลบ" & vbCrLf & "กด No = ยกเลิกการลบ", vbYesNo + vbDefaultButton2, "!!!!ลบตารางคนมามอบตัว!!!!")
            If Answer = vbYes Then

            DoCmd.SetWarnings False
            strSQL = "Delete * from m1_Total_student;"
            DoCmd.RunSQL strSQL
 
            MsgBox "คุณได้ลบตารางคนมามอบตัวทิ้งเรียบร้อยแล้ว" & vbCrLf & "กรุณาตรวจสอบข้อมูล", , "ผลการลบตารางคนมามอบตัว"
            DoCmd.Close
            DoCmd.OpenForm "frm_main_menu"
            DoCmd.MoveSize 300, 400, 18500, 11000
            DoCmd.SetWarnings True
            Else
            MsgBox "คุณได้ยกเลิกการลบตารางคนมามอบตัวทิ้ง", , "ยกเลิก"
            End If
End Sub

Error เกิดจาก Answer ยังไม่ได้กำหนดให้เป็นตัวแปร เลยครับ แต่มีการนำมาเรียกใช้แล้ว เลยเกิดปัญหาดังกล่าว

574
ลองทำการ compact-repair ดูก่อนว่าหายไหม

หรือลองดู แบบนี้ว่าแก้ได้ไหม



ถ้ายังไม่ได้อีก ให้ Backup File ต้นฉบับไว้ Copy มาซัก 1 อัน
เปิดไฟล์ใหม่ขึ้นมาสร้าง Module แล้วใส่ Codeนี้เข้าไป
โค๊ด: [Select]
Sub FixBadAOIndex(BadDBPath As String)
    ' <BadDBPath> is the path to the corrupt database.
    Dim dbBad As DAO.Database
    Dim tdf As DAO.TableDef
    Dim ix As DAO.Index

    Set dbBad = DBEngine.OpenDatabase(BadDBPath)
    dbBad.Execute "DELETE FROM MSysAccessObjects " & _
        "WHERE ([ID] Is Null) OR ([Data] Is Null)", _
        dbFailOnError
    Set tdf = dbBad.TableDefs("MSysAccessObjects")
    Set ix = tdf.CreateIndex("AOIndex")
    With ix
        .Fields.Append .CreateField("ID")
        .Primary = True
    End With
    tdf.Indexes.Append ix
    Set tdf = Nothing
    dbBad.Close
    Set dbBad = Nothing
End Sub

ต่อไปกด Ctrl+G แล้วใส่ FixBadAOIndex("ตำแหน่งไฟล์ที่เสียหายตั้งอยู่")
เช่น FixBadAOIndex("C:\MyPath\MyFile.mdb")
หรือส่งไฟล์เจ้าปัญหา มาทาง Inbox ผมแก้ไขให้

575
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 13 มี.ค. 63 , 08:42:32 »
แบบนี้ไหมครับ



Sub Formstyle(frm As Form)
For Each ctl In frm.Controls
         If ctl.ControlType = acNavigationButton Or acNavigationControl And ctl.Tag = "b1" Then
                      ctl.BackColor = 4210943
         End If
    Next ctl
    'ctl = Nothing
End Sub


576
ห้อง MS Access / : Loop เปลี่ยนสีแถบ Navigation
« เมื่อ: 12 มี.ค. 63 , 14:52:01 »
ส่งไฟล์มาที่ inbox ส่วนตัวหน่อยครับผมดูให้

หน้า: 1 ... 29 30 31 [32] 33 34 35 ... 46