Kết nối dữ liệu từ file Access này đến file Access khác = ADO (6 người xem)

  • Thread starter Thread starter thdanh
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

thdanh

Thành viên mới
Tham gia
8/6/10
Bài viết
45
Được thích
5
Tạo Form bằng Access nhưng lấy Source từ Access khác. mình muốn mỗi lần mình mở form lên nó sẽ tự động nạp dữ liệu trong table Access kia lên. Bạn Làm giúp mình với mình cảm ơn!
 
Tạo Form bằng Access nhưng lấy Source từ Access khác. mình muốn mỗi lần mình mở form lên nó sẽ tự động nạp dữ liệu trong table Access kia lên. Bạn Làm giúp mình với mình cảm ơn!
Dùng chức năng Link Table mà Access đã trang bị sẵn đó bạn.
 
co phương pháp nào không cần link table không bạn. Mình viết 1 đoạn code form load nào mà khi mờ form nó lên thì nó tự động load dữ liệu từ table của bảng access kia.
 
Dùng ADO,DAO cũng được
 
Mình không rành lắm về Access bạn có thể làm giúp dùm mình 1 chương trình mẫu đươc không. Mình vô cùng cảm ơn các bạn
 
Mình không rành lắm về Access bạn có thể làm giúp dùm mình 1 chương trình mẫu đươc không. Mình vô cùng cảm ơn các bạn

Gửi bạn ví dụ về cách dùng ADO để kết nối với CSDL.
Bạn giải nén rồi chạy file ViDu nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn ấy muốn lấy dữ liệu từ Excel, mình có ví dụ thế này:
Mã:
Private Sub Form_Load()
 Dim db As DAO.Database, rs As DAO.Recordset
 Dim strSQL As String
 strSQL = "SELECT * FROM [Shnguon$]"
 Set db = OpenDatabase(CurrentProject.Path & _
 "\THUONGMAI.xls", 0, 1, "Excel 8.0;HDR=Yes;")
 Set rs = db.OpenRecordset(strSQL)
 rs.MoveFirst
 Do
With Me.ListView3.ListItems.Add
.Text = rs.Fields(0)
.SubItems(1) = rs.Fields(1)
.SubItems(2) = rs.Fields(2)
.SubItems(3) = rs.Fields(3)
.SubItems(4) = rs.Fields(4)
End With
 rs.MoveNext
Loop Until rs.EOF
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub

Bạn tải về giải nén ra rồi thử nha (Xin lỗi mình chưa sử lý Font chữ)
 

File đính kèm

Lần chỉnh sửa cuối:
Bạn ấy muốn lấy dữ liệu từ Excel, mình có ví dụ thế này:
Mã:
Private Sub Form_Load()
 Dim db As DAO.Database, rs As DAO.Recordset
 Dim strSQL As String
 strSQL = "SELECT * FROM [Shnguon$]"
 Set db = OpenDatabase(CurrentProject.Path & _
 "\THUONGMAI.xls", 0, 1, "Excel 8.0;HDR=Yes;")
 Set rs = db.OpenRecordset(strSQL)
 rs.MoveFirst
 Do
With Me.ListView3.ListItems.Add
.Text = rs.Fields(0)
.SubItems(1) = rs.Fields(1)
.SubItems(2) = rs.Fields(2)
.SubItems(3) = rs.Fields(3)
.SubItems(4) = rs.Fields(4)
End With
 rs.MoveNext
Loop Until rs.EOF
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
End Sub

Bạn tải về giải nén ra rồi thử nha (Xin lỗi mình chưa sử lý Font chữ)

Hình như yêu cầu bạn ấy là lấy Source từ file Access khác anh Việt ơi

Tạo Form bằng Access nhưng lấy Source từ Access khác. mình muốn mỗi lần mình mở form lên nó sẽ tự động nạp dữ liệu trong table Access kia lên. Bạn Làm giúp mình với mình cảm ơn!
 
Hì, mình đọc Title nên ngỡ là vậy.
Nếu là file Acc thì đại đa số người ta link chứ không làm thế này.
 
Nhưng có phương pháp nào mình không cần link ko bạn.
 
Lần chỉnh sửa cuối:
Mình cảm ơn bạn domfootwear cai ADOAccess của bạn đúng ý mình rồi. bây giờ bạn viết thêm có mình có thể lưu vào và xoá table file access Data từ form chính access vidu. Mình cảm ơn rất nhiều
 
Mình cảm ơn bạn domfootwear cai ADOAccess của bạn đúng ý mình rồi. bây giờ bạn viết thêm có mình có thể lưu vào và xoá table file access Data từ form chính access vidu. Mình cảm ơn rất nhiều
Bạn có thể cập nhật trực tiếp vào bảng dữ liệu, thêm xóa hay chỉnh sửa tùy ý.
 
Mình gởi file lên bạn làm dùm mình nhé sau mình làm nó báo lỗi. Mình có thể thiết kế nút nhập sữa xóa bình thường được không bạn! bạn làm dùm mình luôn nhé. Cảm ơn nhiều!
 

File đính kèm

Mình gởi file lên bạn làm dùm mình nhé sau mình làm nó báo lỗi. Mình có thể thiết kế nút nhập sữa xóa bình thường được không bạn! bạn làm dùm mình luôn nhé. Cảm ơn nhiều!

1. Trước hết vào cửa sổ code, chọn Tools/Reference, bỏ chọn cái nào bị Missing đi.
2. Vào module Update_Data chỉnh lại như sau:

Mã:
Option Compare Database

Public cnn As New ADODB.Connection

Public Sub Moketnoi()
  With cnn
    .ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & _
               CurrentProject.Path & "\QLCB.mdb"
    .Properties("Jet OLEDB:Database Password") = "123"
    .CursorLocation = adUseClient
    .Open
  End With

End Sub

3. Code trong form như bên dưới

Mã:
Option Compare Database

Private Sub Form_Load()
Moketnoi

End Sub

Private Sub Form_Unload(Cancel As Integer)
cnn.Close
End Sub


Private Sub Load_Click()
  Dim lsSQL As String
    Dim lrs As New ADODB.Recordset
       lsSQL = "select * from QL_DM_DTAO"
       lrs.Open lsSQL, cnn, adOpenStatic, adLockBatchOptimistic
    Set Me.Recordset = lrs
    
    Set lrs = Nothing
    
End Sub

Bạn thử nhé.
 
Lần chỉnh sửa cuối:
Bạn ơi cho mình hỏi có phương pháp nào mà mình có thể cho no tự động load lên mỗi lần mình mở form lên không. Bạn chỉ dùm mình cái đó với. Mình cảm ơn nhiều
 
Bạn ơi cho mình hỏi có phương pháp nào mà mình có thể cho no tự động load lên mỗi lần mình mở form lên không. Bạn chỉ dùm mình cái đó với. Mình cảm ơn nhiều
Thì bạn đưa sự kiện Load_Click của nút load dữ liệu vào sự kiện Form_Load là được.
 
sao mà nó chạy được 1 lúc thì nó bị lỗi bạn ơi. Bạn có thể giúp cho mình được không để mình gởi file lên bạn coi giúp mình với. Mình cảm ơn nhiều
 

File đính kèm

Bạn xem lại file đính kèm, so sánh cách mình làm rồi rút ra kết luận nhé.
 

File đính kèm

ok mình cám ơn bạn nhiều lắm nhưng mà sao mình làm trên form nó có 2 subform thì bị nó báo lỗi với lại các textbox mình dùng hàm count và sum nó không có tác dụng gì hết bạn xem chỉnh lại dùm mình với mình cảm ơn
 

File đính kèm

ok mình cám ơn bạn nhiều lắm nhưng mà sao mình làm trên form nó có 2 subform thì bị nó báo lỗi với lại các textbox mình dùng hàm count và sum nó không có tác dụng gì hết bạn xem chỉnh lại dùm mình với mình cảm ơn
Code trong form F_TenCTy bạn thêm như sau:

Mã:
Private Sub Form_Load()
 Dim lsSQL, lsSQL1 As String
 Moketnoi
    Dim lrs As New ADODB.Recordset
       lsSQL = "select * from T_CongTy"
       lsSQL1 = "select * from T_nhanviencty"
       lrs.Open lsSQL, cnn, adOpenStatic, adLockBatchOptimistic
    Set Me.Recordset = lrs
    lrs.Close
    lrs.Open lsSQL1, cnn, adOpenStatic, adLockBatchOptimistic
    
    Set Me.Child7.Form.Recordset = lrs
     
   [B][COLOR=#ff0000]  Me.Child7.Form.Text7 = lrs.RecordCount[/COLOR][/B]
     
    lrs.Close
    
    
 'Moketnoi
End Sub

Phần còn lại bạn tự suy luận nhé.
 
Web KT

Bài viết mới nhất

Back
Top Bottom