1
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.
2
ห้อง MS Access / : ค้นหาสินค้าไม่พบ
« เมื่อ: 14 ม.ค. 64 , 15:40:29 »
รหัสสินค้าเรามั่นใจไหมครับว่า ไม่มีช่องว่างระหว่างรหัสสินค้า สมมุติเครื่องหมาย _ แทนช่องว่างของรหัสช่องว่างนี้อาจจะเกิดจากการกด Back Space หรือเคาะคานเว้นวรรค ครับ
รหัสปกติ 1004000300800
เป็นไปได้ไหมบางครั้งรหัสอาจจะเป็น _1004000300800 หรือ 1004000300800_ หรือ _1004000300800_
ทำให้เวลาเปรียบเทียบรหัสในการค้นหาไม่เจอ
สามารถใช้ Trim() ในการตัดช่องว่าง
รหัสปกติ 1004000300800
เป็นไปได้ไหมบางครั้งรหัสอาจจะเป็น _1004000300800 หรือ 1004000300800_ หรือ _1004000300800_
ทำให้เวลาเปรียบเทียบรหัสในการค้นหาไม่เจอ
สามารถใช้ Trim() ในการตัดช่องว่าง
โพสต์นี้ได้รับคำขอบคุณจาก: abc def
4
ห้อง MS Access / : กดปุ่ม Save แล้วขึ้น Relationships ค่ะ
« เมื่อ: 13 ม.ค. 64 , 20:23:27 »
พรุ่งนี้นะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi
5
ห้อง MS Access / : กดปุ่ม Save แล้วขึ้น Relationships ค่ะ
« เมื่อ: 13 ม.ค. 64 , 16:02:49 »
OShiftID ในตาราง T_OT ชนิดข้อมูลเป็นแบบไหนครับ
ShiftID ในตาราง T_Shift ชนิดข้อมูลเป็นแบบไหน
สามารถ Remote ไปเช็คได้หรือไม่
ShiftID ในตาราง T_Shift ชนิดข้อมูลเป็นแบบไหน
สามารถ Remote ไปเช็คได้หรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi
6
ห้อง MS Access / : กดปุ่ม Save แล้วขึ้น Relationships ค่ะ
« เมื่อ: 13 ม.ค. 64 , 15:44:44 »
RelationShip เช็คการกำหนด Primary Key
ข้อความแจ้งเตือนแบบนี้เกิดจาก การกำหนดความสัมพันธ์กันแล้ว ไม่ได้สร้างข้อมูลในฟิลล์ PK ให้ตารางหลักก่อน
เช่น เมื่อต้องการเพิ่มข้อมูลให้ ตารางที่ 2 ตารางแรกต้องมี ข้อมูลในฟิลล์ PK ด้วยเหมือนกันมันถึงจะยอมให้ผ่านได้
เช่น ท่านจะเพิ่มข้อมูลตารางที่ 2 ID ก็ต้องมีใน ตารางที่ 1 ด้วยครับ
1.เพื่อความชัดเจน ให้แสดงรูป การกำหนด Relationship มาดู
2.แสดงการกำหนด Record Source ในฟอร์มมาดู
ข้อความแจ้งเตือนแบบนี้เกิดจาก การกำหนดความสัมพันธ์กันแล้ว ไม่ได้สร้างข้อมูลในฟิลล์ PK ให้ตารางหลักก่อน
เช่น เมื่อต้องการเพิ่มข้อมูลให้ ตารางที่ 2 ตารางแรกต้องมี ข้อมูลในฟิลล์ PK ด้วยเหมือนกันมันถึงจะยอมให้ผ่านได้
เช่น ท่านจะเพิ่มข้อมูลตารางที่ 2 ID ก็ต้องมีใน ตารางที่ 1 ด้วยครับ
1.เพื่อความชัดเจน ให้แสดงรูป การกำหนด Relationship มาดู
2.แสดงการกำหนด Record Source ในฟอร์มมาดู
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi
7
ห้อง MS Access / : รวมข้อมูลหลาย row ใน 1 Record ในคิวรี่
« เมื่อ: 12 ม.ค. 64 , 08:42:17 »
ในคิวรี่ คงต้องเขียนฟังชั่นนะครับ แล้วมาเรียกใช้ในคิวรี่แต่ผมไม่เคยลอง รออาจารย์ท่านอื่นๆ

แต่ถ้าการสร้างข้องมูลไปวางในตาราง อีกอันนั้นผมใช้แบบนี้ครับ
ตารางหลักชื่อ MyTable
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
--------------------------------------------------
มีตารางแสดงผลชื่อ TblResult
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
โค้ด

แต่ถ้าการสร้างข้องมูลไปวางในตาราง อีกอันนั้นผมใช้แบบนี้ครับ
ตารางหลักชื่อ MyTable
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
--------------------------------------------------
มีตารางแสดงผลชื่อ TblResult
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
โค้ด
โค๊ด: [Select]
Private Sub concatenateString()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim rstOut As DAO.Recordset
Dim strID As String
Dim strITEM As String
Set db = CurrentDb()
Set rst = db.OpenRecordset("SELECT Mytable.ID, Mytable.ITEM FROM Mytable GROUP BY Mytable.ID, Mytable.ITEM ORDER BY Mytable.ID, Mytable.ITEM DESC;", dbOpenDynaset)
If Not rst.BOF And Not rst.EOF Then
rst.MoveFirst
strID = rst!ID
strITEM = rst!Item
rst.MoveNext
Do Until rst.EOF
If strID = rst!ID Then
strITEM = strITEM & ", " & rst!Item
Else
Set db = CurrentDb()
Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
rstOut.AddNew
rstOut!ID = strID
rstOut!Item = strITEM
rstOut.Update
strID = rst!ID
strITEM = rst!Item
rstOut.Close
db.Close
End If
rst.MoveNext
Loop
Set db = CurrentDb()
Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
rstOut.AddNew
rstOut!ID = strID
rstOut!Item = strITEM
rstOut.Update
strID = rstOut!ID
strITEM = rstOut!Item
rstOut.Close
db.Close
End If
Set rst = Nothing
Set db = Nothing
Set rstOut = Nothing
End Sub
ที่ปุ่มใส่โค้ดเพื่อเรียกใช้งานโค๊ด: [Select]
Private Sub Command0_Click()
concatenateString
End Sub
8
ห้อง MS Access / : preview and new record
« เมื่อ: 07 ม.ค. 64 , 15:24:34 »สอบถามผู้รู้ครับที่ปุมใส่ 2 โค้ดนี้เข้าไป
ผมต้องการสร้างปุ่ม preview และ Add NewRecord ในปุ่มเดียวต้องเขียน code อย่างไรครับ ?
DoCmd.OpenReport "ชื่อReport", acViewPreview
Docmd.GoToRecord,,acNewRec
โพสต์นี้ได้รับคำขอบคุณจาก: phathako
9
ห้อง MS Access / : อยากจะ Lock Record ที่มีการบันทึกไปแล้วไม่ให้แก้ไข ทำได้ไหมครับ???
« เมื่อ: 07 ม.ค. 64 , 08:09:41 »
ไม่รู้ว่าการแสดงข้อมูลเป็นแบบไหนนะครับ แต่ถ้าทำวิธีง่ายๆ คือสร้างคิวรี่ไว้ตรวจสอบ เพื่อใช้กับเงื่อนไขว่า เป็นข้อมูลของเดือนที่แล้วหรือไม่
ถ้าเป็นข้อมูลของเดือนที่แล้วก็ กำหนดให้Formให้ ห้ามแก้ไข = true ได้ครับ
สร้างตารางไว้ตรวจสอบนี้ มีเก็บ ID ของข้อมูลหลัก และ วันเดือนปี ของข้อมูลหลัก เพื่อนำมาเช็คเดือนว่าเป็นเดือนปัจจุบันหรือไม่
ถ้าเป็นข้อมูลของเดือนที่แล้วก็ กำหนดให้Formให้ ห้ามแก้ไข = true ได้ครับ
สร้างตารางไว้ตรวจสอบนี้ มีเก็บ ID ของข้อมูลหลัก และ วันเดือนปี ของข้อมูลหลัก เพื่อนำมาเช็คเดือนว่าเป็นเดือนปัจจุบันหรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013
10
ห้อง MS Access / : error 2501 เปิดรายงาน
« เมื่อ: 05 ม.ค. 64 , 08:44:10 »
ใช้การดักจับ error ได้ไหมครับ ลองดูครับ
Private Sub rptTest_Click()
On Error GoTo ErrHandler
DoCmd.OpenReport "ReportNotifyMulti", acViewPreview
Exit Sub
ErrHandler:
If Err = 2501 Then
Resume Next
Else
MsgBox Err.Description, vbExclamation
End If
End Sub
ถ้าไม่ได้จะหาวิธีอื่นให้ครับ
Private Sub rptTest_Click()
On Error GoTo ErrHandler
DoCmd.OpenReport "ReportNotifyMulti", acViewPreview
Exit Sub
ErrHandler:
If Err = 2501 Then
Resume Next
Else
MsgBox Err.Description, vbExclamation
End If
End Sub
ถ้าไม่ได้จะหาวิธีอื่นให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: chai
11
ห้อง MS Access / : ต้องการให้ดึงค่ามาแสดงในTextbox แต่ไม่ต้องการเก็บค่านั้น ทำอย่างไรคะ
« เมื่อ: 29 ธ.ค. 63 , 12:18:09 »
ปรับใหม่ล่าสุด V3 นะครับ น่าจะตรงสุดละ
โพสต์นี้ได้รับคำขอบคุณจาก: Normunu
12
ห้อง MS Access / : ต้องการให้ดึงค่ามาแสดงในTextbox แต่ไม่ต้องการเก็บค่านั้น ทำอย่างไรคะ
« เมื่อ: 29 ธ.ค. 63 , 08:19:49 »ขอทราบอีกคำถามหนึ่งนะคะ>> ทำเลขลำดับในForm ยังไงหรอคะ? เพราะถ้าเป็นใน Report ก็สร้างtextbox ให้ control souce "=1 " และเลือก Running Sum เป็น "over all" รบกวนช่วยหน่อยนะคะ ขอบคุณค่ะ
ข้อที่ 1 ส่งตัวอย่างข้อมูลมาครับ
ข้อที่ 2 ลองดูจากกระทู้นี้ครับมีตัวอย่าง
https://www.thai-access.com/index.php?topic=331.msg1345#msg1345
โพสต์นี้ได้รับคำขอบคุณจาก: Normunu
13
ห้อง MS Access / : สอบถามวิธีการแยกประเภทของรายการวัสดุใน Report การสั่งซื้อค่ะ
« เมื่อ: 25 ธ.ค. 63 , 14:45:50 »
1.ศึกษาการสร้าง HeadGroup ของรายงานครับ โดยเอา ประเภทใหญ่ เป็น Headgroup ใน thai access นี้มีตัวอย่างอยู่เยอะครับ
2.ใช้การกำหนดรูปแบบการแสดง อยู่ตรง Sectionต่างๆ ครับ มันจะมีให้บังคับขึ้นหน้าใหม่ ก่อนส่วน หลังส่วน หรือก่อนและหลัง
ถ้ามีตัวอย่างข้อมูลมาผมทำตัวอย่างให้ได้ครับ
2.ใช้การกำหนดรูปแบบการแสดง อยู่ตรง Sectionต่างๆ ครับ มันจะมีให้บังคับขึ้นหน้าใหม่ ก่อนส่วน หลังส่วน หรือก่อนและหลัง
ถ้ามีตัวอย่างข้อมูลมาผมทำตัวอย่างให้ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Normunu
14
ห้อง MS Access / : สวัสดีค่ะ หนูต้องการวิธีการ ห้ามลงเวลาซ้ำในระยะเวลาที่จอง
« เมื่อ: 14 ธ.ค. 63 , 12:36:23 »
งั้น Endtime รูปแบบข้อมูลต้องเป็นแบบ General Date ครับ
ลองดูตัวอย่างการเช็คเงื่อนไข โดยกำหนดว่า ถ้า Endtime น้อยกว่า StartTime ให้บวกไปอีก 1 วันเช่น
Private Sub SaveData()
Dim rst As DAO.Recordset
Dim dtEndtime As String
Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
rst.AddNew
rst!Ondate = Me.Ondate
If Me.EndTime < Me.StartTime Then
dtEndtime = Me.Ondate + 1 & " " & EndTime
Else
dtEndtime = Me.Ondate & " " & EndTime
End If
rst!StartTime = Me.StartTime
rst!EndTime = CDate(dtEndtime)
rst.Update
rst.Close
Set rst = Nothing
End Sub
และกำหนด รูปแบบข้อมูลในตารางเป็น Date/Time กำหนดเป็น General Date
ลองดูตัวอย่างการเช็คเงื่อนไข โดยกำหนดว่า ถ้า Endtime น้อยกว่า StartTime ให้บวกไปอีก 1 วันเช่น
Private Sub SaveData()
Dim rst As DAO.Recordset
Dim dtEndtime As String
Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)
rst.AddNew
rst!Ondate = Me.Ondate
If Me.EndTime < Me.StartTime Then
dtEndtime = Me.Ondate + 1 & " " & EndTime
Else
dtEndtime = Me.Ondate & " " & EndTime
End If
rst!StartTime = Me.StartTime
rst!EndTime = CDate(dtEndtime)
rst.Update
rst.Close
Set rst = Nothing
End Sub
และกำหนด รูปแบบข้อมูลในตารางเป็น Date/Time กำหนดเป็น General Date
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu
15
ห้อง MS Access / : สอบถามการใส่เสียง Beep ตอนขึ้น Massess Box ครับ
« เมื่อ: 09 ธ.ค. 63 , 14:51:56 »
ที่ Module
Option Compare Database
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
Call PlaySound("c:\windows\media\policesiren.WAV", 0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
Public Sub StopSound()
PlaySound vbNullString, 0, 0
End Sub
ที่ command button เพิ่ม
SoundMe 'เมื่อเล่นเสียงแล้ว ต่อไปจะเด้ง msgbox ก็ดักเงื่อนไขการกด OK
If MsgBox("ข้อมูลซ้ำกัน กรุณาตรวจสอบ", vbOKOnly, "program") = vbOK Then
StopSound
End If
Option Compare Database
#If Win64 Then
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean
#Else
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Boolean
#End If
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Function SoundMe() As String
Call PlaySound("c:\windows\media\policesiren.WAV", 0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function
Public Sub StopSound()
PlaySound vbNullString, 0, 0
End Sub
ที่ command button เพิ่ม
SoundMe 'เมื่อเล่นเสียงแล้ว ต่อไปจะเด้ง msgbox ก็ดักเงื่อนไขการกด OK
If MsgBox("ข้อมูลซ้ำกัน กรุณาตรวจสอบ", vbOKOnly, "program") = vbOK Then
StopSound
End If
โพสต์นี้ได้รับคำขอบคุณจาก: sjs
16