ผมมี code vba อยู่อันนี้ ผมมีรายงานอยู่ 2 แบบ แต่รับค่าจากตารางเดียวกัน คือรายงานแบบที่ 1 มีตารางรายงานครบทุกช่อง แต่ รายงานแบบที่ 2 มีตารางน้อยกว่าแบบที่ 1 (เพราะตารางแบบที่ 2 มีค่าว่างอยู่ผมเลยทำแสดงเฉพาะที่มีข้อมูลเท่านั้นตารางว่างไม่แสดง ประเด็นผมอยากจะให้ code vba เลือกที่รายงานแบบที่ 2 หากผมเลือกค่า ใน combobox (มีอยู่ 1 ค่า(Province)) ให้แสดงรายงานรแบบที่ 2 หากเป็นค่าอื่นให้แสดงรายงานแบบที่ 1 ปกติ มันจะได้หรือไม่ครับ จะต้องเพิ่ม code ตรงไหน code vba มีดังนี้ครับ
Private Sub cmdPrint_Click()
On Error GoTo Err_cmdPrint_Click
Dim Mysql As String, i As Integer
Dim mydb As DAO.Database, myquery As DAO.QueryDef, Td As DAO.Recordset, tpo As DAO.Recordset, qryage As DAO.Recordset
Set mydb = CurrentDb
Set myquery = mydb.CreateQueryDef("", "Delete * from DETAILPOSITDEPT")
myquery.Execute
myquery.Close
Mysql = "SELECT Positid.ID_POSIT, Positid.POSITING, Positid.DEPTING, Positid.ID, POSITION.POSIT, DEPART.PROVINCE, Level.LEVELNAME, Level.LEVEL ,DEPART.DEPT"
Mysql = Mysql & " FROM ([Query49])"
Mysql = Mysql & "Where Province = '" & NProvince & "' Order by Positid.Depting;"
Set qryage = mydb.OpenRecordset(Mysql)
Set Td = mydb.OpenRecordset("DETAILPOSITDEPT", dbOpenDynaset)
qryage.MoveFirst
With qryage
Do While Not .EOF
If .Fields(7) = "1" Then
i = 2
End If
If .Fields(7) = "2" Then
i = 5
End If
If .Fields(7) = "3" Then
i = 8
End If
If .Fields(7) = "4" Then
i = 11
End If
If .Fields(7) = "5" Then
i = 14
End If
If .Fields(7) = "6" Then
i = 17
End If
If .Fields(7) = "7" Then
i = 20
End If
If .Fields(7) = "8" Then
i = 23
End If
If .Fields(7) = "9" Then
i = 26
End If
Td.FindFirst "DEPTID = '" & qryage("DEPTING") & "' "
If Td.NoMatch Then
Td.AddNew
Td("DEPTID") = qryage("DEPTING")
Td("DEPTNAME") = qryage("DEPT")
Else
Td.Edit
End If
Td.Fields(i) = Td.Fields(i) + 1
Td.Fields(29) = Td.Fields(29) + 1
If qryage("ID") <> 0 Then
Td.Fields(i + 1) = Td.Fields(i + 1) + 1
Td.Fields(30) = Td.Fields(30) + 1
Else
Td.Fields(i + 2) = Td.Fields(i + 2) + 1
Td.Fields(31) = Td.Fields(31) + 1
End If
Td.Update
.MoveNext
Loop
End With
qryage.Close
Td.Close
mydb.Close
DoCmd.OpenReport "report1", acPreview
Exit_cmdPrint_Click:
Exit Sub
Err_cmdPrint_Click:
MsgBox Err.Description
Resume Exit_cmdPrint_Click
End Sub