217
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.
218
ห้อง MS Access / : ขอไอเดียป้องกันข้อมูลซ้ำ
« เมื่อ: 23 ก.ค. 61 , 10:38:37 »
ข้อมูล ที่ Copy มาแก้ไข ส่วนที่แก้ไขส่วนใหญ่มีตรงไหนบ้างครับ แล้วมี Field ไหนที่ต้องไม่ซ้ำกันบ้างครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak
219
ห้อง MS Access / : เลือกค่าใน Combo Box แล้วให้แสดงค่าใน TextBox
« เมื่อ: 23 ก.ค. 61 , 08:39:37 »ผมสมมุติ Combobox ชื่อ Ohms และ textbox ของ Accept/Reject ชื่อ AandR
โค๊ด: [Select]
Private Sub Ohms_AfterUpdate()
Dim lngRed As Long, lngGreen As Long
lngRed = RGB(255, 0, 0)
lngGreen = RGB(50, 205, 50)
If Me.Ohms >= "10E04" And Me.Ohms <= "10E09" Then
Me.AandR = "Accept"
AandR.BackColor = lngGreen
ElseIf Me.Ohms >= "10E10" And Me.Ohms <= "10E12" Then
Me.AandR = "Reject"
AandR.BackColor = lngRed
Else
Me.AandR.BackColor = Ohms.BackColor
Me.AandR = Null
End If
End Sub
220
ห้อง MS Access / : query หลายตัว
« เมื่อ: 17 ก.ค. 61 , 10:03:17 »มี query ที่มีชื่อฟิลด์เหมือนกันค่ะ เราจะแสดงข้อมูลทุกฟิลด์ ที่มาจากทุก query ในตารางเดียวกันได้อย่างไรบ้างคะถ้ามีคิวรี่ที่ ชื่อ Field เหมือนกันผมว่า
เช่น
query 1 มี ฟิลด์ชื่อ lotno , complete
query 2 มี ฟิลด์ชื่อ lotno , complete
query 3 .
...
.
.
ต้องการแสดง lotno เดียวกัน แสดงข้อมูล ฟิลด์ชื่อ lot no,complete query1,complete query2 , .. .. . .
ใช้การ UNION คิวรี่ ทั้งหมดรวมไว้ด้วยกันแล้วทำ Crosstab แบบของอาจารย์ OddyWriter น่าจะได้ผลนะครับ
ผมสมมุติให้ Query1 , 2 , 3 , 4 ถึง 70 มีข้อมูลที่ต้องนำมาทำ
ใช้การ UNION ใส่โค้ดประมาณนี้
โค๊ด: [Select]
SELECT Lotno,process,complete
From Query1
UNION
SELECT Lotno,process,complete
From Query2
UNION
SELECT Lotno,process,complete
From Query3
UNION
SELECT Lotno,process,complete
From Query4;
ทำไปเรื่อยๆ จนถึง Query ที่ 70;พอรวมกันแล้วก็นำมาทำทำ Crosstab ครับ
ตัวอย่างด้านล่าง
โพสต์นี้ได้รับคำขอบคุณจาก: สุรเกตุ แซ่เอี้ย
221
ห้อง MS Access / : Export to Excel แล้วเราสามารถระบุชื่อเรื่องได้ไหมคะ
« เมื่อ: 13 ก.ค. 61 , 09:30:54 »
Private Sub Command0_Click()
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlSheet As Object
DoCmd.TransferSpreadsheet acExport, , "Query1", "D:\ExportQuery1.xls", True
Set xlApp = CreateObject("excel.application")
Set xlWorkbook = xlApp.Workbooks.Open("D:\ExportQuery1.xls")
Set xlSheet = xlWorkbook.activesheet
With xlSheet.range("A1")
.entirerow.insert -4121 ' Insert and Shift Row Down
.entirerow.insert -4121 ' Insert and Shift Row Down
xlApp.DisplayAlerts = False
xlSheet.range("A1:F2").merge ' Merge Cells (ผสานเซล A1:F2)
xlApp.DisplayAlerts = True
End With
With xlSheet.range("A1")
.Value = "ชื่อหัวเรื่องที่ต้องการ"
.Font.Name = "Tahoma"
.Font.Size = 18
.Font.Bold = True
.HorizontalAlignment = -4108 ' Align Center
End With
With xlSheet
.Columns("A").ColumnWidth = ......
.Columns("B").ColumnWidth = ......
.Columns("C").ColumnWidth = ......
.Columns("D").ColumnWidth = ......
.Columns("E").ColumnWidth = ......
.Columns("F").ColumnWidth = ......
End With
xlApp.ActiveWorkbook.Close True
End Sub
ตรง .....ลองกำหนดขนาดดูครับ
เพิ่มเติมนะครับถ้าอยากให้Column พอดีกับข้อความในเซล ก็ใส่เป็น
.Columns("A").EntireColumn.AutoFit
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlSheet As Object
DoCmd.TransferSpreadsheet acExport, , "Query1", "D:\ExportQuery1.xls", True
Set xlApp = CreateObject("excel.application")
Set xlWorkbook = xlApp.Workbooks.Open("D:\ExportQuery1.xls")
Set xlSheet = xlWorkbook.activesheet
With xlSheet.range("A1")
.entirerow.insert -4121 ' Insert and Shift Row Down
.entirerow.insert -4121 ' Insert and Shift Row Down
xlApp.DisplayAlerts = False
xlSheet.range("A1:F2").merge ' Merge Cells (ผสานเซล A1:F2)
xlApp.DisplayAlerts = True
End With
With xlSheet.range("A1")
.Value = "ชื่อหัวเรื่องที่ต้องการ"
.Font.Name = "Tahoma"
.Font.Size = 18
.Font.Bold = True
.HorizontalAlignment = -4108 ' Align Center
End With
With xlSheet
.Columns("A").ColumnWidth = ......
.Columns("B").ColumnWidth = ......
.Columns("C").ColumnWidth = ......
.Columns("D").ColumnWidth = ......
.Columns("E").ColumnWidth = ......
.Columns("F").ColumnWidth = ......
End With
xlApp.ActiveWorkbook.Close True
End Sub
ตรง .....ลองกำหนดขนาดดูครับ
เพิ่มเติมนะครับถ้าอยากให้Column พอดีกับข้อความในเซล ก็ใส่เป็น
.Columns("A").EntireColumn.AutoFit
222
ห้อง MS Access / : สร้างคำสั่ง Copy แล้ว Error ครับ
« เมื่อ: 13 ก.ค. 61 , 08:27:05 »
ครับ กดเปิด Query นั้นใน มุมมองแก้ไขแล้วกดลาก Field ใหม่ไปใส่เลยก็ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: prajak
223
ห้อง MS Access / : Export to Excel แล้วเราสามารถระบุชื่อเรื่องได้ไหมคะ
« เมื่อ: 13 ก.ค. 61 , 08:21:59 »
เพิ่มคำสั่งตอนท้ายครับเป็นแบบนี้
Private Sub Command0_Click()
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlSheet As Object
DoCmd.TransferSpreadsheet acExport, , "Query1", "D:\ExportQuery1.xls", True
Set xlApp = CreateObject("excel.application")
Set xlWorkbook = xlApp.Workbooks.Open("D:\ExportQuery1.xls")
Set xlSheet = xlWorkbook.activesheet
With xlSheet.range("A1")
.entirerow.insert -4121 ' Insert and Shift Row Down
.entirerow.insert -4121 ' Insert and Shift Row Down
xlApp.DisplayAlerts = False
xlSheet.range("A1:F2").merge ' Merge Cells (ผสานเซล A1:F2)
xlApp.DisplayAlerts = True
End With
With xlSheet.range("A1")
.Value = "ชื่อหัวเรื่องที่ต้องการ"
.Font.Name = "Tahoma"
.Font.Size = 18
.Font.Bold = True
.HorizontalAlignment = -4108 ' Align Center
End With
xlApp.ActiveWorkbook.Close True
End Sub
Private Sub Command0_Click()
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlSheet As Object
DoCmd.TransferSpreadsheet acExport, , "Query1", "D:\ExportQuery1.xls", True
Set xlApp = CreateObject("excel.application")
Set xlWorkbook = xlApp.Workbooks.Open("D:\ExportQuery1.xls")
Set xlSheet = xlWorkbook.activesheet
With xlSheet.range("A1")
.entirerow.insert -4121 ' Insert and Shift Row Down
.entirerow.insert -4121 ' Insert and Shift Row Down
xlApp.DisplayAlerts = False
xlSheet.range("A1:F2").merge ' Merge Cells (ผสานเซล A1:F2)
xlApp.DisplayAlerts = True
End With
With xlSheet.range("A1")
.Value = "ชื่อหัวเรื่องที่ต้องการ"
.Font.Name = "Tahoma"
.Font.Size = 18
.Font.Bold = True
.HorizontalAlignment = -4108 ' Align Center
End With
xlApp.ActiveWorkbook.Close True
End Sub
225
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 11 ก.ค. 61 , 08:24:41 »
ชื่อของ Field ผมว่าเปลี่ยนไปใช้ภาษาอังกกษดีกว่าครับ จะได้ไม่มีปัญหาภายหลัง
ส่วน error ต่างๆ ให้ส่งไฟล์ที่ทำอยู่มาที่ pinnarong1115@hotmail.com
เดี่ยวผมดูให้ครับ
ส่วน error ต่างๆ ให้ส่งไฟล์ที่ทำอยู่มาที่ pinnarong1115@hotmail.com
เดี่ยวผมดูให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT
226
ห้อง MS Access / : สร้างคำสั่ง Copy แล้ว Error ครับ
« เมื่อ: 10 ก.ค. 61 , 16:52:34 »code ตามที่คุณปิ่นณรงค์ให้มาใช้ได้ครับ จะมีปัญหาตรงที่บางครั้งผมอาจมีการfilter Style หรือ OD# อย่างใดอย่างหนึ่ง และที่สำคัญแต่ละStyle หรือแต่ละOD# ที่เราfilter มันจะมีหลายrecord เวลาเรา filterแล้ว กด Next ไปrecord อื่นแล้วทำการcopy มันจะerrorครับ เหมือนกับมันจะให้ copyเฉพาะที่ filter เท่านั้น
อ่อ งั้นเราก็ไปกำหนดให้มันเลือก Record ปัจจุบันที่เราใช้งานเลือกอยู่ ก่อนจะ Copy Record ได้ครับ โดยสร้าง Textbox ของ ID มาแสดงในฟอร์มด้วยทีนี้ถึงท่านแก้ไขเนื้อหา ก่อน Copy หรือจะกำหนด Filter ยังไงก็ได้ครับ เพราะมันจะFilter ข้อมูลจาก ID แล้ว Copy ไป Paste ในตารางให้
โค๊ด: [Select]
If MsgBox("คุณต้องการ copy ข้อมูลหรือไม่", vbQuestion + vbYesNo + vbDefaultButton2, "Copy ข้อมูล") = vbYes Then
Forms![Merchandiser Key Update].Form.Filter = "[ID] = " & ID
Me.FilterOn = True
DoEvents
DoCmd.RunCommand acCmdSelectRecord
DoEvents
DoCmd.RunCommand acCmdCopy
DoEvents
DoCmd.RunCommand acCmdPaste
End If
โพสต์นี้ได้รับคำขอบคุณจาก: pirin
227
ห้อง MS Access / : ล้างข้อความในกล่องข้อความ
« เมื่อ: 08 ก.ค. 61 , 14:59:10 »
diag afterupdate ทำงานบนฟอร์มชื่ออะไรครับท่าน Un
ที่จริงไม่น่าจะมีข้อผิดพลาดนะครับแต่ถ้าเกิดขึ้นจริงก็ลองใส่ IF ไปตรวจสอบดูก็ได้ครับ
ตรง Else
else
if not isnull(Forms!Service!CbDD) Then
Forms!Service!CbDD = null
End if
Forms!Service!TxDD.visible = False
Forms!Service!CbDD.visible = False
Forms!Service!FontCbDD.visible = False
Forms!Service!Drug_Sub.setFocus
End If
ที่จริงไม่น่าจะมีข้อผิดพลาดนะครับแต่ถ้าเกิดขึ้นจริงก็ลองใส่ IF ไปตรวจสอบดูก็ได้ครับ
ตรง Else
else
if not isnull(Forms!Service!CbDD) Then
Forms!Service!CbDD = null
End if
Forms!Service!TxDD.visible = False
Forms!Service!CbDD.visible = False
Forms!Service!FontCbDD.visible = False
Forms!Service!Drug_Sub.setFocus
End If
โพสต์นี้ได้รับคำขอบคุณจาก: Un
228
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 08 ก.ค. 61 , 01:48:33 »อ้างถึง
อ่อขอเพิ่มเติมข้อ 2 หน่อยค่ะ คือไม่อยากให้คำนวณช่วงเบรกอ่ะค่ะ 12.00-13.00 จะไม่ให้มันคำนวณออกมาอ่ะค่ะ ต้องเพิ่มเติมโค้ดตรงไหนคะ ขอบคุณค่ะ
Sub CalTime()
Dim DTime1, Time1, DTime2, Time2 As Variant
Dim MainTime As Long
Time1 = "12:00 PM"
Time2 = "1:00 PM"
MainTime = (DateDiff("h", Me.TimeStart, Me.TimeEnd))
DTime1 = (DateDiff("h", Me.TimeStart, Time1))
DTime2 = (DateDiff("h", Me.TimeEnd, Time2))
If DTime1 > 0 Then
If DTime2 < 0 Then
MainTime = MainTime - 1
Me.CalcTime = MainTime & " ชั่วโมง"
Else
MainTime = MainTime
Me.CalcTime = MainTime & " ชั่วโมง"
End If
End If
If Me.TimeStart > Me.TimeEnd Then
MainTime = (DateDiff("h", Me.TimeStart, Me.TimeEnd) + 24)
Me.CalcTime = MainTime - 1 & " ชั่วโมง"
End If
If DTime1 = 0 Then
If DTime2 < 0 Then
MainTime = MainTime - 1
Me.CalcTime = MainTime & " ชั่วโมง"
End If
End If
If DTime1 < 0 Then
If DTime2 < 0 Then
MainTime = MainTime
Me.CalcTime = MainTime & " ชั่วโมง"
End If
End If
If DTime1 > 0 Then
If DTime2 = 0 Then
MainTime = MainTime - 1
Me.CalcTime = MainTime & " ชั่วโมง"
End If
End If
End Sub
Private Sub TimeEnd_AfterUpdate()
If Not IsNull(Me.TimeStart) And _
Not IsNull(Me.TimeEnd) Then
Call CalTime
End If
End Sub
Private Sub TimeStart_AfterUpdate()
If Not IsNull(Me.TimeStart) And _
Not IsNull(Me.TimeEnd) Then
Call CalTime
End If
End Sub
ลองศึกษาดูครับ
timestart คือ textbox เวลาเริ่มทำงาน
timeend คือ textbox เวลาสินสุด
Calctime คือ textbox ผลลัพท์ที่คำนวนได้คับ
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT
229
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 08 ก.ค. 61 , 01:18:53 »
ลบ Tshift = Shift ออกไปครับ พอดีผมลืมลบออกให้ มันเลย เออเร่อ
แก้คำสั่งเป็น
แก้คำสั่งเป็น
โค๊ด: [Select]
Sub ResetForm()
On Error GoTo Err_Err
Dim ctl As Control
For Each ctl In Me
If ctl.ControlType = acComboBox Then
ctl = Null
End If
If ctl.ControlType = acTextBox Then
ctl = Null
End If
If ctl.ControlType = acCheckBox Then
ctl = False
End If
Next ctl
Exit_err:
Exit Sub
Err_Err:
MsgBox Error$
MsgBox "ERROR ResetForm"
Resume Exit_err
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT
230
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 07 ก.ค. 61 , 11:31:02 »อ้างถึง
1.การคำนวณอายุ ถ้าต้องการให้ตอนกรอกประวัติพนักงาน กรอกวันเกิด/วันเริ่มงานเสร็จแล้ว ให้อายุ/อายุงานมันขึ้นเลยได้หรือป่าวคะ หรือถ้าไม่ได้ เราให้มันคำนวณตอนกดเซฟได้หรือป่าวคะ เพราะเมื่อวานลองลงโค้ดคำนวณดู มันเออเร่ออ่ะค่ะ เหมือนตัวเองจะยังไม่ค่อยเข้าใจหลักการของการวางโค้ดเลยค่ะ
การคำนวนหาช่วงปี เดือน วัน หรือ เวลา เราสามารถใช้ DateDiff ในการหาค่าต่างๆ
เช่น การหาค่าอายุ และ การหาอายุการทำงาน
ผมกำหนด
textbox ที่จะแสดงอายุชื่อ Age
และ textbox ที่จะระบุอายุชื่อ Birthday
โค้ดประมาณนี้ครับ
โค๊ด: [Select]
Me.Age = Int(DateDiff("m", [Birthday], Now()) / 12) & " ปี " & (DateDiff("m", [Birthday], Now()) Mod 12) & "เดือน " & Int(DateDiff("d", [Birthday], Now()) Mod 12) & " วัน "
การหา อายุงานใช้วิธีการเดียวกันครับอ้างถึง
2.คำนวณชั่วโมงการทำงานทั้งหมด อย่างสมมุติ น.ส.สวย เข้างาน= 08.00น. ออกงาน = 17.00น. ชั่วโมงทำงาน = 08.00 ชม. แบบนี้ต้องคำนวณอย่างไร ตั้งชนิดข้อมูลของเข้างาน,ออกงาน เป็น Date/Time นี่คือถูกต้องแล้วใช่มั้ยคะผมสมมุติ textbox 3 อัน ชื่อ Timestart , TimeEnd , CalcTime
โดยจะกำหนดให้คำนวนเวลาทำงาน เมื่อระบุเวลา เริ่มและสินสุดการทำงาน และแสดงใน textbox ชื่อ Calctime
ตัวอย่างโค้ด
โค๊ด: [Select]
Sub CalTime()
If Me.TimeEnd < Me.TimeStart Then
Me.CalcTime = (DateDiff("h", [TimeStart], [TimeEnd]) + 24) & " ชั่วโมง"
Else
Me.CalcTime = DateDiff("h", [TimeStart], [TimeEnd]) & " ชั่วโมง"
End If
End Sub
Private Sub TimeEnd_AfterUpdate()
Call CalTime
End Sub
Private Sub TimeStart_AfterUpdate()
Call CalTime
End Sub
อ้างถึง
3.คือเรามีตารางเก็บข้อมูลการลางานแบบนี้ 01=มาทำงานปกติ 02=ลาป่วย 03=ลากิจ ... ถ้าต้องการให้มีช่อง2ช่อง ช่อง1 เป็นช่องเล็กๆไว้ใส่เลข 01 แล้วช่องที่2 ให้มันเด้งขึ้นมาเองว่า มาทำงานปกติ ประมาณนี้ ถ้าเราเปลี่ยนแปลงตัวเลข ตัวหนังสือก็เปลี่ยนตามไปด้วย ประมาณนี้อ่ะค่ะ ต้องทำอย่างไรคะ
วิธีการคือให้ไปดูการกำหนด แหล่งข้อมูลแถว ของตัว Combobox นะครับ
สังเกตุดูจะเห็นว่า เราดึง Field ID และ Field Status ลงมาเพื่อใช้เป็น list ของ Combobox
ถ้าเราต้องการให้ กด เลือก ข้อมูลจาก Combobox แล้ว textbox ก็แสดง status ตรงกับ ID นั้น
ก็กำหนดแบบนี้ครับ ที่ Event Afterupdate
โค๊ด: [Select]
Private Sub Combo16_AfterUpdate()
Me.status = Me.Combo16.Column(1)
End Sub
ความหมาย ของ .Column(1) คือการเอา รายการจาก ตัว Combobox คอลัมน์ที่ 2 มาแสดง ใน textbox โดย .Column(0) คือคอลัมน์แรก ส่วน คอลัมน์ ต่อๆไป ก็สามารถระบุ 1 2 3 4 5 ไปเรื่อยๆ ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT
231
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 06 ก.ค. 61 , 22:15:01 »
ที่จริง ถ้าจะให้ Advance อีกนิด เราสามารถสร้าง Control แบบ Unbound น่าจะเวิคนะครับ
ตัวอย่างเพื่อจะนำไปปรับใช้
คำสั่งในการบันทึกข้อมูล
คำสั่งทำให้ ข้อมูลจากตัว Control บนฟอร์ม เป็นค่าว่าง
ประมาณนี้ครับ
ตัวอย่างเพื่อจะนำไปปรับใช้
คำสั่งในการบันทึกข้อมูล
โค๊ด: [Select]
Private Sub Save_Click()
Call AddNewToTable
subform.Requery
MsgBox "บันทึกข้อมูลแล้วค่ะ", vbInformation, "สถานะ"
Call ResetForm
End Sub
โค๊ด: [Select]
Sub AddNewToTable()
On Error GoTo Err_Err
Dim DB As Database
Dim rs As Recordset
Set DB = CurrentDb()
Set rs = DB.OpenRecordset("BillHead", dbOpenDynaset)
rs.AddNew
rs![BillNumber] = Me.BillNumber
rs![CustomerName] = Me.CustomerName
rs![CustomerLastName] = Me.CustomerLastName
rs![Tel1] = Me.Tel1
rs![Tel2] = Me.Tel2
rs.Update
Exit_err:
Exit Sub
Err_Err:
MsgBox Error$
MsgBox "Error, ( Add New)!", vbExclamation, "แจ้ง"
Resume Exit_err
End Sub
คำสั่งทำให้ ข้อมูลจากตัว Control บนฟอร์ม เป็นค่าว่าง
โค๊ด: [Select]
Sub ResetForm()
On Error GoTo Err_Err
Dim ctl As Control
For Each ctl In Me
If ctl.ControlType = acComboBox Then
ctl = Null
End If
If ctl.ControlType = acTextBox Then
ctl = Null
End If
If ctl.ControlType = acCheckBox Then
ctl = False
End If
Next ctl
Exit_err:
Exit Sub
Err_Err:
MsgBox Error$
MsgBox "ERROR ResetForm"
Resume Exit_err
End Sub
ประมาณนี้ครับ
232
ห้อง MS Access / : unrecognized database format
« เมื่อ: 06 ก.ค. 61 , 21:42:50 »
ตรง ERROR 3443
ตัวฐานข้อมูล และโปรแกรม ได้นำมาทำใหม่จาก Access เวอร์ชั่นเก่าหรือเปล่าครับ
ขอดูตรงการกำหนด reference ของ DAO library ตรงหน้าต่างใส่โค้ด Tools->References ว่ามีพวก "Microsoft Office 12.0 Access database engine Object Library" หรือเปล่าถ้า Office 10 ใช้ 14.0
ตัวฐานข้อมูล และโปรแกรม ได้นำมาทำใหม่จาก Access เวอร์ชั่นเก่าหรือเปล่าครับ
ขอดูตรงการกำหนด reference ของ DAO library ตรงหน้าต่างใส่โค้ด Tools->References ว่ามีพวก "Microsoft Office 12.0 Access database engine Object Library" หรือเปล่าถ้า Office 10 ใช้ 14.0
โพสต์นี้ได้รับคำขอบคุณจาก: Kxess
233
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 06 ก.ค. 61 , 21:17:34 »ทำไม ชื่อ Field ในตาราง หลัก กับรองเหมือนกันเลยละครับ
subform ของคุณไว้ดูข้อมูลทั้งหมดที่เพิ่มเข้าไปใช่หรือเปล่าครับ คือกรอกข้อมูลจาก ฟอร์มหลักแล้วให้ มาแสดงในฟอร์มย่อยแบบนั้นเปล่าครับ
ใช่เลยค่ะ เหมือนบันทึกจากฟอร์มหลักลงฟอร์มย่อยอ่ะค่ะ พอกดบันทึก ช่องก็จะว่างให้เราบันทึก Record ต่อไปได้ อะไรประมาณนี้อ่ะค่ะ
งั้นก็เอา การตั้งค่าตรง หัวข้อที่ 3 ออกไปครับ
Form หลัก และ Form ย่อย ใช้ RecordSource จากตารางเดียวกัน
สมมุติชื่อ ฟอร์มย่อยว่า Subform
ที่ปุ่ม บันทึกใส่แบบนี้ครับ
โค๊ด: [Select]
Private Sub Save_Click()
DoCmd.GoToRecord , , acNewRec
subform.Requery
MsgBox "บันทึกข้อมูลแล้วค่ะ", vbInformation, "สถานะ"
End Sub
ลองดูตัวอย่างนี้ครับ
234
ห้อง MS Access / : ขอสอบถามเกี่ยวกับฟอร์มที่สร้างทีค่ะ
« เมื่อ: 06 ก.ค. 61 , 20:29:23 »ข้อสอง ลองดูตัวอย่างโปรแกรม ที่มีการใช้ SubForm นะครับ คุณต้องกำหนด เชื่อมข้อมูลเข้าด้วยกันโดยใช้ ID ของฟอร์มหลักและฟอร์มย่อยเข้าด้วยกัน ข้อมูลถึงจะได้เป็นอันเดียวกัน
และต้องไปกำหนด ความสัมพันธ์ของตารางด้วยครับ
ตัวอย่างโปรแกรมครับลองนำไปประยุกต์ใช้ดูนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MyDDT