Thảo luận về bài: ADO căn bản "Kết nối truy vấn CSDL từ file Excel đến file Access."

Blue Softs Liên hệ QC

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
còn cái tạo đường dẩn cố định tới file muốn lấy dữ liệu thì sao bạn?
ví dụ: trong 2 folder1 và 2 nằm tại ổ D:\folder1\vidu.xls

Thì bạn tìm cái strFileName mà thay thế cái đường dẫn của bạn vào, nhớ thêm 2 dấu "" bao quanh đường dẫn nhé
VD: "D:\folder1\vidu.xls"
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
Mình sẽ làm thử nhưng bạn làm hộ mình để mình đối chiếu coi mình sai chổ nào nhé!

sao mình làm không đc bạn ơi bạn làm hộ mình với!
 
Chỉnh sửa lần cuối bởi điều hành viên:

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
Mình sẽ làm thử nhưng bạn làm hộ mình để mình đối chiếu coi mình sai chổ nào nhé!

sao mình làm không đc bạn ơi bạn làm hộ mình với!

Bạn test thử code ở file Access:

Mã:
Option Compare Database
Private Sub cmdCapNhat_Click()
Dim strFileName As String
  strFileName = "D:\folder1\vidu.xls"
  With DoCmd
        .SetWarnings (False)
        sSQL = "UPDATE [TB hang hoa] b " _
          & "RIGHT JOIN " _
          & "[Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & strFileName & "].[Sheet1$B4:G18] a " _
          & "ON a.Mahang=b.Mahang " _
          & "SET b.ngay=a.ngay,b.Mahang=a.Mahang,b.tenhang=a.tenhang," _
          & "b.makholuutru=a.makholuutru,b.tenkholuutru=a.tenkholuutru," _
          & "b.Soluongban=a.Soluongban " _
          & "where a.mahang is not null"
        DoCmd.RunSQL sSQL
        Me.RecordSource = "TB hang hoa"
        .SetWarnings (True)
    End With
End Sub

Private Sub cmdLayDuLieu_Click()
Dim strFileName As String
  strFileName = "D:\folder1\vidu.xls"
    With DoCmd
        .SetWarnings (False)
        .RunSQL "Delete * from [TB hang hoa]"
        .TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
            "TB hang hoa", strFileName, True, "B4:G18"
         Me.RecordSource = "TB hang hoa"
        .SetWarnings (True)
    End With

End Sub
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
nó báo lổi không đc bạn à
Mã:
Private Sub cmdCapNhat_Click()
Dim strFileName As String
  strFileName = "D:\HocAccess\Folder02\vidu.xls"
  With DoCmd
        .SetWarnings (False)
        sSQL = "UPDATE [TB hang hoa] b " _
          & "RIGHT JOIN " _
          & "[Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & strFileName & "].[Sheet1$B4:G18] a " _
          & "ON a.Mahang=b.Mahang " _
          & "SET b.ngay=a.ngay,b.Mahang=a.Mahang,b.tenhang=a.tenhang," _
          & "b.makholuutru=a.makholuutru,b.tenkholuutru=a.tenkholuutru," _
          & "b.Soluongban=a.Soluongban " _
          & "where a.mahang is not null"
        [COLOR=#ff0000]DoCmd.RunSQL sSQL lổi đầu tiên[/COLOR]
        Me.RecordSource = "TB hang hoa"
        .SetWarnings (True)
    End With
End Sub

Private Sub cmdLayDuLieu_Click()
Dim strFileName As String
  strFileName = "D:\HocAccess\Folder02\vidu.xls"
    With DoCmd
        .SetWarnings (False)
        .RunSQL "Delete * from [TB hang hoa]"
        [COLOR=#ff0000].TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
            "TB hang hoa", strFileName, True, "B4:G18"[/COLOR] lổi thứ 2
         Me.RecordSource = "TB hang hoa"
        .SetWarnings (True)
    End With

End Sub
 
Chỉnh sửa lần cuối bởi điều hành viên:

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
nó báo lổi không đc bạn à
Private Sub cmdCapNhat_Click()
Dim strFileName As String
strFileName = "D:\HocAccess\Folder02\vidu.xls"
With DoCmd
.SetWarnings (False)
sSQL = "UPDATE [TB hang hoa] b " _
& "RIGHT JOIN " _
& "[Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & strFileName & "].[Sheet1$B4:G18] a " _
& "ON a.Mahang=b.Mahang " _
& "SET b.ngay=a.ngay,b.Mahang=a.Mahang,b.tenhang=a.tenhang," _
& "b.makholuutru=a.makholuutru,b.tenkholuutru=a.tenkholuutru," _
& "b.Soluongban=a.Soluongban " _
& "where a.mahang is not null"
DoCmd.RunSQL sSQL lổi đầu tiên
Me.RecordSource = "TB hang hoa"
.SetWarnings (True)
End With
End Sub

Private Sub cmdLayDuLieu_Click()
Dim strFileName As String
strFileName = "D:\HocAccess\Folder02\vidu.xls"
With DoCmd
.SetWarnings (False)
.RunSQL "Delete * from [TB hang hoa]"
.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
"TB hang hoa", strFileName, True, "B4:G18"
lổi thứ 2
Me.RecordSource = "TB hang hoa"
.SetWarnings (True)
End With

End Sub

Bạn nên kiểm tra chính xác lại đường dẫn nhé, tôi thấy file bạn gửi lần trước có tên "Folder 02" (Khó cách trắng), còn sửa trong code thì không có, bạn kiểm tra lại nhé.
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
bạn a mình có sưa lại thư mục cho phù hợp mà vẩn báo lổi bạn à
bạn thử tạo vào file và gửi lên mình download về thử xem!
 

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
bạn a mình có sưa lại thư mục cho phù hợp mà vẩn báo lổi bạn à
bạn thử tạo vào file và gửi lên mình download về thử xem!
Vấn đề chắc chắn là do đường dẫn của bạn.

Mã:
Option Compare Database
Private Sub cmdCapNhat_Click()
Dim strFileName As String
  strFileName = [B][COLOR=#0000ff]"D:\HocAccess\Folder 02\vi du.xls"[/COLOR][/B]
  With DoCmd
        .SetWarnings (False)
        sSQL = "UPDATE [TB hang hoa] b " _
          & "RIGHT JOIN " _
          & "[Excel 8.0;HDR=YES;IMEX=2;DATABASE=" & strFileName & "].[Sheet1$B4:G18] a " _
          & "ON a.Mahang=b.Mahang " _
          & "SET b.ngay=a.ngay,b.Mahang=a.Mahang,b.tenhang=a.tenhang," _
          & "b.makholuutru=a.makholuutru,b.tenkholuutru=a.tenkholuutru," _
          & "b.Soluongban=a.Soluongban " _
          & "where a.mahang is not null"
        DoCmd.RunSQL sSQL
        Me.RecordSource = "TB hang hoa"
        .SetWarnings (True)
    End With
End Sub

Private Sub cmdLayDuLieu_Click()
Dim strFileName As String
  strFileName = [B][COLOR=#0000cd]"D:\HocAccess\Folder 02\vi du.xls"[/COLOR][/B]
    With DoCmd
        .SetWarnings (False)
        .RunSQL "Delete * from [TB hang hoa]"
        .TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
            "TB hang hoa", strFileName, True, "B4:G18"
         Me.RecordSource = "TB hang hoa"
        .SetWarnings (True)
    End With

End Sub
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
ồ đúng tại lổi mình không sưa đường dẩn file excel
còn phần code của excel bạn làm luôn hộ mình nhé!

ở nút update ra excel sao nó không chạy bạn? nó không chuyển dữ liệu qua excel mà lại lấy từ excel vào!
 
Chỉnh sửa lần cuối bởi điều hành viên:

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
ồ đúng tại lổi mình không sưa đường dẩn file excel
1./ còn phần code của excel bạn làm luôn hộ mình nhé!

2./ ở nút update ra excel sao nó không chạy bạn? nó không chuyển dữ liệu qua excel mà lại lấy từ excel vào!

1./ Thì bạn dựa vào đó mà đổi đường dẫn, hãy cố làm trước vậy mới mau tiến bộ.

2./ Do bạn không nói rõ là update từ excel qua hay là update đến file excel. Để mình xem lại.
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
bạn xem lại chưa? nút update ra excel mà không cần mở file excel đó!
 

Hoàng Trọng Nghĩa

Chuyên gia GPE
Thành viên BQT
Moderator
Tham gia
17/8/08
Bài viết
8,418
Được thích
16,189
Giới tính
Nam
bạn xem lại chưa? nút update ra excel mà không cần mở file excel đó!

Người ta đang giúp bạn hay là lính của bạn để bạn hối người ta vậy? Trưa thế này người ta còn ăn uống, nghỉ ngơi nữa chứ!

Muốn gì thì cứ gửi file của bạn lên, xem bạn làm tới đâu mới có hướng giúp bạn, chứ tưởng tượng mà làm thì chỉ có Hai Lúa Miền Tây có đủ kiên nhẫn để giúp bạn thôi!
 
Lần chỉnh sửa cuối:

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
mình không biết mới lên diễn đàn nhờ những người giỏi hơn giúp đỡ, mình đã gửi file rồi! tôi nghĩ bạn tự nâng cao mình, rồi chọc chĩa tùm lum làm mất quan điểm người khác thì cho dù bạn có gỏi đi chăng nữa tôi cũng chẳng nhờ bạn giúp đỡ!
không như bạn Hai Lúa Miền Tây nhiệt tình mình rất cảm ơn bạn ấy!
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
mình đã làm đc ở file excel rồi!còn lại file access update qua excel nữa thôi!
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
thực sự là mình muốn tạo ra file của người khác mình lấy dữ liệu của người ta và tạo dữ liệu lại để người ta có dữ liệu mới để làm việc tiếp bạn à

bạn ơi cho mình hỏi cái tại sao những ô dạng text khi mình đánh số vào thì nó lại không updete được
 
Chỉnh sửa lần cuối bởi điều hành viên:

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
khi mình gỏ dạng text vào những ô trong access định dạng là text thì được
nhưng khi gỏ là số vào thì không tài nào update được!
 

Hai Lúa Miền Tây

❆❆❆❆❆❆❆❆
Thành viên BQT
Administrator
Tham gia
18/3/08
Bài viết
8,141
Được thích
15,443
Giới tính
Nam
Nghề nghiệp
Làm ruộng.
khi mình gỏ dạng text vào những ô trong access định dạng là text thì được
nhưng khi gỏ là số vào thì không tài nào update được!

Code updata trong Excel:

[GPECODE=sql]Sub HLMT_Update()
On Error GoTo loi
Set Cn = CreateObject("ADODB.Connection")
Dim mySQL As String
Dim strFileName
strFileName = Application.GetOpenFilename()
With Cn
mySQL = "UPDATE [TB hang hoa] b " _
& "right JOIN " _
& "[Excel 8.0;HDR=Yes;IMEX=1;DATABASE=" _
& ThisWorkbook.FullName & "].[Sheet1$B4:G600] a " _
& "ON b.Mahang=a.Mahang " _
& "SET b.ngay=a.ngay,b.Mahang=a.Mahang,b.tenhang=a.tenhang," _
& "b.makholuutru=a.makholuutru,b.tenkholuutru=a.tenkholuutru," _
& "b.Soluongban=a.Soluongban " _
& "where a.mahang is not null"
.Provider = "Microsoft Jet 4.0 OLE DB Provider"
.ConnectionString = "Data Source=" & strFileName
.CursorLocation = adUseClient
.Open
.Execute mySQL
.Close
End With
Set Cn = Nothing
Exit Sub
loi:
MsgBox Err.Description

End Sub

[/GPECODE]
 

huyhoang_mmyeht

Thành viên hoạt động
Tham gia
5/5/09
Bài viết
115
Được thích
2
bạn xem file minh họa nhé!
 

File đính kèm

  • THDH.zip
    74.4 KB · Đọc: 39
Top Bottom