เอาแบบ คร่าวๆ
1 .สร้าง Connect ไปที่ MS Access
2 .สร้าง sql (คำสั่ง query)
3 . Run query แล้วมาเก็บไว้ที่ text box ของ VB
พอดี Program VB ผมเดี่ยง.... เลยเปิด source ตัวอย่างให้ดูไม่ได้
ลองใช้ VBA ดูเป็นตัวอย่างไปก่อน ละกัน..... เป็นตัวที่ผมเขียนเพื่อ
1. VBA นี้เขียนบน MSExcel
2. เพื่อไปดึงข้อมูลจาก MSAccess อีกเครื่องหนึ่งบน ระบบEthernet
..... จริงๆมี Sub และ Function มากกว่านี่อะ ... แต่ถามแค่การเชื่อมต่อ ก็เลยเอามาให้ดูเป็นตัวอย่างแค่บางส่วนครับ
หวังว่าคงพอเป็นประโยชน์น๊ะครับ
ตัวอย่าง..................................................
Sub LoadDataBarcode()
On Error GoTo Err_LoadDataBarcdoe ' Error Control
Dim ConnSSS As ADODB.Connection ' สร้างตัวแปรเพื่อรับ Object connection
Dim rstSSS As ADODB.Recordset ' สร้างตัวแปรเพื่อรับ Object Recordset
Dim strConnSSS As String ' ข้อกำหนดการเชื่อมต่อ
Dim strSQL As String ' ข้อกำหนดการดึงข้อมูล
Set ConnSSS = New ADODB.Connection
Set rstSSS = New ADODB.Recordset
strConnSSS = "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=\\th66234063\barcode\BackEnd\SSS BARCODE.mdb"
rstSSS.CursorLocation = adUseClient
If ConnSSS.State = adStateOpen Then ConnSSS.Close
ConnSSS.Open strConnSSS
Dim WorkNumber As String
'WorkNumber = InputBox("Work order ที่ต้องการ ?")
'CLASS = Cells(1, 11)
CLASS = frmMain.txtWO
If CLASS = "" Then
MsgBox ("CLASS ?")
'Exit Sub
End If
strSQL = "SELECT UnionTable.PartNumber, UnionTable.LOT, Sum(UnionTable.QTY) AS SumOfQTY" & _
" FROM [select * from physicalinventory UNION ALL select * from stockroom]. AS UnionTable INNER JOIN PartMaster ON UnionTable.PartNumber = PartMaster.PartNumber " & _
" GROUP BY UnionTable.PartNumber, UnionTable.LOT, PartMaster.Class " & _
" HAVING Sum(UnionTable.QTY) <>0 ; "
'Set rstSSS = ConnSSS.Execute(strSQL)
rstSSS.Open strSQL, ConnSSS
If rstSSS.EOF And rstSSS.BOF Then
rstSSS.Close
Set rstSSS = Nothing
ConnSSS.Close
Set ConnSSS = Nothing
MsgBox ("ไม่พบข้อมูล Barcode")
Exit Sub
End If
frmMain.ProgressBarBarcode.Min = 0
rstSSS.MoveLast
frmMain.ProgressBarBarcode.Max = rstSSS.RecordCount
rstSSS.MoveFirst
Dim ReadRecordCountBarcode As Integer
ReadRecordCountBarcode = 0
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
i = QTYrecordofPrms
While Not rstSSS.EOF
i = i + 1
For j = 2 To rstSSS.Fields.Count + 1
Cells(i, 1) = "BC"
Cells(i, j) = rstSSS.Fields(j - 2)
Next j
ReadRecordCountBarcode = ReadRecordCountBarcode + 1
frmMain.ProgressBarBarcode.Value = ReadRecordCountBarcode
rstSSS.MoveNext
Wend
frmMain.lblProgressBarcode.Visible = True
rstSSS.Close
Set rstSSS = Nothing
ConnSSS.Close
Set ConnSSS = Nothing
MsgBox ("ดึงข้อมูลเสร็จแล้ว ทั้งBarcode และ ระบบPRMS")
Sheets("MyPivote").Select
Range("E10").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
Exit_LoadDataBarcdoe:
Exit Sub
Err_LoadDataBarcdoe:
MsgBox "ติดต่อเครื่อง Barcode ไม่ได้" & vbNewLine & " - " & Err.Description & Err.Number
End Sub