559
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.
560
ห้อง MS Access / : รบกวนทุกท่านเช็ค VBA DoCmd.RunSQL ให้ผมหน่อยครับ
« เมื่อ: 13 เม.ย. 63 , 08:20:46 »
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"
ต่อประโยคผิดเปล่าครับ
มันต้อง ................" _
แล้วก็ & "............."
หรือเปล่า
"[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
ห้อง MS Access / : ขออนุญาตสอบถาม Code ตรวจสอบบัตรประชาชนซ้ำครับ ติดปัญหา Error ครับ
« เมื่อ: 02 เม.ย. 63 , 12:50:44 »
ชื่อ textbox ที่ระบุเลขประจำตัวประชาชนชื่อ label3 หรอครับตรวจสอบตรงนี้ด้วย
ชื่อตารางที่ตรวจสอบชื่อ Farmer หรือไม่
ชื่อฟิลล์ Person_Code ดูชื่อว่าตรงหรือไม่
ชื่อตารางที่ตรวจสอบชื่อ Farmer หรือไม่
ชื่อฟิลล์ Person_Code ดูชื่อว่าตรงหรือไม่
563
ห้อง MS Access / : ใน textbox ไม่ให้พิมพ์ตัวอักษรต้องห้าม
« เมื่อ: 31 มี.ค. 63 , 13:35:02 »
ใช้ 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
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
ห้อง MS Access / : ใน textbox ไม่ให้พิมพ์ตัวอักษรต้องห้าม
« เมื่อ: 31 มี.ค. 63 , 09:52:22 »ถ้าต้องการให้กรอกเฉพาะภาษาไทย หรือ กรอกเฉพาะภาษาอังกฤษ ครับ
ทำแบบข้างบนละครับ ว่าเราต้องการคีย์ไหนบ้าง ถ้ามันอยู่เรียงกันก็ใช้ >= and <= เพื่อลดจำนวนโค้ดได้ ถ้าอยู่ห่างๆกันใช้ Or มาช่วย
ถ้าอยากรู้ว่าตัวอักษรภาษาไทย ที่เรากดนั้น KeyAscii เลขอะไรก็ใส่โค้ดแบบนี้
Private Sub TextBoxName_KeyPress(KeyAscii As Integer)
MsgBox KeyAscii
End Sub
แล้วจดไว้เพื่อนำมาเข้าเงื่อนไข ที่ต้องการ
565
ห้อง MS Access / : ทำอย่างไรให้ textbox ในฟอร์มเปล่า โชว์ค่า sum จาก query
« เมื่อ: 31 มี.ค. 63 , 08:28:42 »ผมสมมุติบนฟอร์มมี 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
ห้อง MS Access / : ใน textbox ไม่ให้พิมพ์ตัวอักษรต้องห้าม
« เมื่อ: 31 มี.ค. 63 , 08:12:14 »เราจะเขียนโค๊ดอย่างไร เพื่อให้ใน 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
ห้อง MS Access / : Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« เมื่อ: 27 มี.ค. 63 , 11:59:59 »
เอาโค้ดมาดูนะครับ
ว่ามีตรงไหน ทำงานซ้ำซ้อน หรือเปล่า หรือการอ้างอิงต่างๆ อาจจะขัดแย้งกัน
ต้องดูโค้ดครับ
ว่ามีตรงไหน ทำงานซ้ำซ้อน หรือเปล่า หรือการอ้างอิงต่างๆ อาจจะขัดแย้งกัน
ต้องดูโค้ดครับ
568
ห้อง MS Access / : ต้องใช้คำสั่ง requery ยังไงค่ะ
« เมื่อ: 27 มี.ค. 63 , 09:21:24 »ต้องการใช้คำสั่ง requery หลังจากอัปเดตข้อมูลในซับฟอร์ม จาก ฟอร์มหลักค่ะแบบที่คุณ UnKnown บอกเลยครับ
เป็นการใช้คำสั่ง ต่อส่วนท้าย แบบนี้ก็ได้ครับ
โค๊ด: [Select]
Forms![ชื่อฟอร์มหลัก].Form.[ชื่อซัพฟอร์ม].Requery
569
ห้อง MS Access / : Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« เมื่อ: 23 มี.ค. 63 , 11:11:46 »อ้างถึง
ตอนผมจะเข้าไปแก้โค้ด ปรากฏว่าโปรแกรม มีอาการค้าง ไม่แน่ใจว่าตอนท่านแก้มีอาการค้างๆ หน่วงๆบ้างไหมครับ
ถ้าเปน เกิดจากการที่ผมโค้ดมัน จนมันทำงานหนักไปรึเปล่าครับ เท่าที่ท่านเหน
ไม่เจออาการหน่วงครับ
570
ห้อง MS Access / : Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« เมื่อ: 23 มี.ค. 63 , 08:25:59 »
ข้อ 1 แก้เป็น
หรือแบบนี้
ข้อ 1 แนะนำให้ใช้แบบนี้
ข้อที่ 2 แก้เป็นแบบนี้
โค๊ด: [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
ห้อง MS Access / : Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« เมื่อ: 22 มี.ค. 63 , 21:58:38 »
เอา 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
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
ห้อง MS Access / : Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« เมื่อ: 19 มี.ค. 63 , 10:30:36 »
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
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 ยังไม่ได้กำหนดให้เป็นตัวแปร เลยครับ แต่มีการนำมาเรียกใช้แล้ว เลยเกิดปัญหาดังกล่าว
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
ห้อง MS Access / : Access พบปัญหาเข้าใช้ฐานข้อมูลไม่ได้ ควรแก้ไขแบบไหนครับ
« เมื่อ: 13 มี.ค. 63 , 12:53:47 »
ลองทำการ compact-repair ดูก่อนว่าหายไหม
หรือลองดู แบบนี้ว่าแก้ได้ไหม
ถ้ายังไม่ได้อีก ให้ Backup File ต้นฉบับไว้ Copy มาซัก 1 อัน
เปิดไฟล์ใหม่ขึ้นมาสร้าง Module แล้วใส่ Codeนี้เข้าไป
ต่อไปกด Ctrl+G แล้วใส่ FixBadAOIndex("ตำแหน่งไฟล์ที่เสียหายตั้งอยู่")
เช่น FixBadAOIndex("C:\MyPath\MyFile.mdb")
หรือส่งไฟล์เจ้าปัญหา มาทาง Inbox ผมแก้ไขให้
หรือลองดู แบบนี้ว่าแก้ได้ไหม
ถ้ายังไม่ได้อีก ให้ 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
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 ส่วนตัวหน่อยครับผมดูให้