thanhquyt > 22-12-16, 06:06 PM
cpucloi > 22-12-16, 09:22 PM
thanhquyt > 22-12-16, 10:40 PM
(22-12-16, 09:22 PM)cpucloi Đã viết: Sẽ nhanh nhận được sự giúp đỡ nếu bạn có file mẫu đính kèm.
cpucloi > 24-12-16, 10:34 AM
bignosevinatex > 25-12-16, 02:55 AM
ongke0711 > 25-12-16, 11:32 AM
(25-12-16, 02:55 AM)bignosevinatex Đã viết: Em có 1 file database access chứa dữ liệu,trong đó có barcode,itemcode,price,...từ file excel em nhập barcode,em muốn dùng vba để lấy price or itemcode trong file access nhưng chưa biết viết code sao,nhờ mọi người giúp đỡ.Cảm ơn mọi người
Private Sub cmdTest_Click()
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=C:\Users\tenban\Documents\test.accdb"
cn.Open strConnection
On Error Resume Next
For i = 1 To 3 'Vi tri luu barcode'
strBarcode = Cells(i, 1)
strSql = "SELECT ItemCode,Price FROM Table1 WHERE Barcode='" & strBarcode & "';"
Set rs = cn.Execute(strSql)
Cells(i, 2) = rs.Fields(0).Value
Cells(i, 3) = rs.Fields(1).Value
Next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
bignosevinatex > 25-12-16, 07:42 PM
(25-12-16, 11:32 AM)ongke0711 Đã viết:Trước tiên là cảm ơn bạn đã quan tâm đến câu hỏi của mình và tân tình giúp đỡ,ý mình là xây dựng hàm vba excel để khi nhập list barcode bên 1 file excel,khi cần có thể lấy các giá trị tương ứng cho các barcode này bên database access, thì chỉ cần nhập hàm vào là lấy được giá trị tương ứng(VD:Price(barcode)=14.000,đvt(barcode)=cái,...).Vì mình mới tập tành VBA nên còn gà lắm,mình có build code như sau nhưng vẫn chưa thể chạy đc,mong mn giúp,trong module mình buil:(25-12-16, 02:55 AM)bignosevinatex Đã viết: Em có 1 file database access chứa dữ liệu,trong đó có barcode,itemcode,price,...từ file excel em nhập barcode,em muốn dùng vba để lấy price or itemcode trong file access nhưng chưa biết viết code sao,nhờ mọi người giúp đỡ.Cảm ơn mọi người
Ý bạn là thiết kế nút lệnh trong Excel và lấy dữ liệu từ Table của Access.
Nếu vậy bạn dùng code sau:
- Tạo 1 nút lệnh. Ví dụ đặt tên là cmdTest.
- File access 2007 trở lên (.accdb). Nếu bạn tạo trên Access 2003 thì đổi thông số Provider trong chuỗi kết nối thành: "Provider=Microsoft.Jet.OLEDB.4.0;"
Mã PHP:Private Sub cmdTest_Click()
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _
& "Data Source=C:\Users\tenban\Documents\test.accdb"
cn.Open strConnection
On Error Resume Next
For i = 1 To 3 'Vi tri luu barcode'
strBarcode = Cells(i, 1)
strSql = "SELECT ItemCode,Price FROM Table1 WHERE Barcode='" & strBarcode & "';"
Set rs = cn.Execute(strSql)
Cells(i, 2) = rs.Fields(0).Value
Cells(i, 3) = rs.Fields(1).Value
Next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
ongke0711 > 25-12-16, 10:54 PM
Public Const DMPath = "E:\CodeVBA\DM.mdb"
Public Function ItemCode(BAR_CODE As String) As String
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Set DB = DBEngine.Workspaces(0).OpenDatabase(DMPath)
Set RS = DB.OpenRecordset("NEC_CHECK_PRICE", dbOpenDynaset)
On Error GoTo KetThuc
RS.FindFirst "BARCODE = '" & Trim(BAR_CODE) & "'"
If Not RS.NoMatch() Then
ItemCode = Trim(RS![ItemCode])
End If
KetThuc:
RS.Close
Set RS = Nothing
DB.Close
Set DB = Nothing
End Function
bignosevinatex > 25-12-16, 11:27 PM
bignosevinatex > 25-12-16, 11:46 PM