Nghĩa là đối với việc này ADO nó không cho phép phải không ạnh.
Cảm ơn anh, đúng là làm như vậy là sẽ xử lý được vấn đề của em rồi. Cho em hỏi thêm một câu nữa, Các tiêu đề STT, TEN,SL mình có set gì không? Hay là cứ đặt STT, TEN, SL là được. Nếu trong file đích có nhiều hơn 1 ký tự STT thì câu lệnh sẽ xử lý thế nào anh nhỉ.Bạn muốn chèn dữ liệu vào File B Tại vùng B88 trở xuống thì tại B88 tại file B bạn đặt tiêu đề STT,TEN,SL. Sau đó chạy Code anh HLMT.
Cảm ơn anh, đúng là làm như vậy là sẽ xử lý được vấn đề của em rồi. Cho em hỏi thêm một câu nữa, Các tiêu đề STT, TEN,SL mình có set gì không? Hay là cứ đặt STT, TEN, SL là được. Nếu trong file đích có nhiều hơn 1 ký tự STT thì câu lệnh sẽ xử lý thế nào anh nhỉ.
Để biết cách xử lý cho các trường hợp phát sinh bạn cần tìm hiểu ADO thì mới có thể tuỳ biến nhiều được.Cảm ơn anh, đúng là làm như vậy là sẽ xử lý được vấn đề của em rồi. Cho em hỏi thêm một câu nữa, Các tiêu đề STT, TEN,SL mình có set gì không? Hay là cứ đặt STT, TEN, SL là được. Nếu trong file đích có nhiều hơn 1 ký tự STT thì câu lệnh sẽ xử lý thế nào anh nhỉ.
.Execute "INSERT INTO [Data_B$] SELECT [B]STT,TEN,SL [/B]FROM [excel 8.0;database=" & _
ThisWorkbook.FullName & ";[B]HDR=Yes[/B]].[Data_A$B8:D23]"
Tôt nhất bạn nên tìm hiểu các đề tài của anh HaiLuaMienTay có hướng dẫn và giải thích rất rõ ràng nếu chưa biết gì ADO chúc bạn thành côngCảm ơn anh. Cái gì cũng phải có nguyên tắc của nó đúng không anh, nếu cứ bám theo hướng đó là xử lý được, không nên đặt ra những truờng hợp khó xử lý. ^^
Cảm ơn mọi người nhiều lắm.
Hihi. Kiểu này chắc em phải đọc lại từ bài 1 trong thớt của thầy HLMT quá. Thầy đưa ra có một yêu cầu, mà anh Viet Hoai đã xử luôn rồi, không ai hỏi tiếp về chủ đề update nữa. Bài tiếp theo là sắp xếp và xoá trong cơ sở dữ liệu. ^^Ah vậy là câu lệnh khác rồi bạn tìm hiểu lệnh update từ bài 101 nhen Bài tập về ADO căn bản.
Trong trường hợp của em, em muốn update toàn bộ các giá trị như ví dụ của thấy HLMT, em set theo cú pháp hướng dẫn của thầy có phải là như vầy không anh nmhung49:1./ Cú pháp:
[GPECODE=sql]UPDATE [Tên Bảng] SET [Cột 1]=GiaTri_1, [Cột 2]=GiaTri_2, ...,[Cột n]=GiaTri_n
WHERE [Tên_Cột_Và_Điều_Kiện_Update][/GPECODE]
lrs.Open lsSQL, cnn, 3, 1
Có thể do bài viết không đưa lên được các bài trong này nên chắc mọi người không để ý.
Nhờ các anh chị tư vấn giúp em thêm về trường hợp này nhé.
Cảm ơn anh chị nhiều.
Cảm ơn anh.- Dùng update thì ít nhất file B phải có cái gì đó để làm điều kiện update chứ bạn.
- Các câu lệnh Update, Insert, Delete... Nói chung là những câu lệnh không trả về dòng nào thì ta không cần khởi tạo Recordset.
---------------------------------------------------------------------------------------Thử ví dụ như sau:
[GPECODE=sql]Sub GhiDL_HLMT()
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
With cn
.ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0;" & _
"data source=" & ThisWorkbook.Path & _
"\B.xls;extended properties=""excel 8.0;HDR=Yes;"";"
.Open
.Execute "INSERT INTO [Data$] SELECT STT,TEN,SL FROM [excel 8.0;database=" & _
ThisWorkbook.FullName & ";HDR=Yes].[Sheet1$B823]"
End With
cn.Close: Set cn = Nothing
End Sub
[/GPECODE]
Bạn chịu khó gửi ví dụ xem sao nhé.Thầy ơi, cũng là vd này nhưng chỉ ghi dòng mới nào có đặt nút "GHI DL SANG FILE B" thì nội dung của dòng đó trên file A được ghi vào file B thôi được không thầy.
Vì e muốn ứng dụng vào mỗi lần em nhập nội dung xuất kho cho NV KD tên A thì cuối dòng e để tên A và khi click vào tên A đó nội dung xuất kho được nhập vào công nợ cho NVKD A ( file công nợ của A này đang là file B trong VD của Thầy) .
Xin cảm ơn Thầy nhiều lắm a.
--------------------------------------------------------
---------------------------------------------------------------------------------------
Bạn dùng code sau nhé.Gởi thầy Fiile đính kèm. Thầy giúp dùm em nha. Cảm ơn thầy nhiều.
Sub GhiDL()
Dim cn, rst As Object
Dim arrNV As Variant
Dim strFile As String
Set cn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=Excel 12.0"
rst.Open "select distinct NVKD from [XUAT KHO T#10$A3:M]", cn, 1
arrNV = rst.GetRows()
For i = 0 To rst.RecordCount - 1
strFile = ThisWorkbook.Path & "\CONGNO-" & arrNV(0, i) & ".xlsx"
cn.Close
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";Extended Properties=Excel 12.0")
cn.Execute ("Insert Into [A:K] select TT,NgayCT,SoCT,KhachHang,MaHang,MatHang,DVT,SoLuong,DonGia,ThanhTien,GhiChu from [Excel 12.0;Database=" & ThisWorkbook.FullName & "].[XUAT KHO T#10$A3:M] where DaGhiDL is null and NVKD='" & arrNV(0, i) & "'")
Next
Sheet1.Range("M4:M" & Sheet1.Range("J65000").End(xlUp).Row) = "x"
End Sub