- Tham gia
- 29/4/08
- Bài viết
- 95
- Được thích
- -2
Sub Report()
'1. Tao doi tuong muon lay du lieu
Dim cn As Object
Set cn = CreateObject("ADODB.connection")
'2. Tui chua du lieu
Dim rst As Object
Set rst = CreateObject("ADODB.recordset")
'3. Tao duong dan
Dim address As String
address = "C:\Users\Administrator\Downloads\dang_dong.xlsm"
'4.Mo ket noi
cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & address & ";Extended Properties=""Excel 12.0 Xml;HDR=No""")
'5. Cho du lieu vao tui va loc
rst.Open ("SELECT * FROM [sheet1$A2:I] WHERE f1 is not Null"), cn
'6. Xoa Du lieu cu va gan du lieu moi
Sheet1.Range("a1:i1000").ClearContents
Sheet1.Range("a3").CopyFromRecordset rst
Sheet1.Range("a3").CurrentRegion.EntireColumn.AutoFit
End Sub
Em không thấy code trong file ExcelChạy thử sub report, sửa đường dẫn nếu file đóng lưu nơi khác.
Cho tôi hỏi thêm: Nếu file dang_dong.xlsm đang mở thì code phải như thế nào để không bị lỗi.Xem và tải lại #2
ok rồi, không còn lỗi nữa. Cảm ơn bạn.Control + S (lưu file trước khi chạy code không cần đóng file)
Chụp lại thông báo lỗi thế nào ?
Được rồi anh ạ, e cám ơn nhiều, nếu không muốn ghi ra sheet mà em muốn đưa vào mảng để xử lý tiếp thì sửa sao bác chỉ giúp em thêm tí nhéChạy thử sub report, sửa đường dẫn nếu file đóng lưu nơi khác.
Mã:Sub Report() '1. Tao doi tuong muon lay du lieu Dim cn As Object Set cn = CreateObject("ADODB.connection") '2. Tui chua du lieu Dim rst As Object Set rst = CreateObject("ADODB.recordset") '3. Tao duong dan Dim address As String address = "C:\Users\Administrator\Downloads\dang_dong.xlsm" '4.Mo ket noi cn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & address & ";Extended Properties=""Excel 12.0 Xml;HDR=No""") '5. Cho du lieu vao tui va loc rst.Open ("SELECT * FROM [sheet1$A2:I] WHERE f1 is not Null"), cn '6. Xoa Du lieu cu va gan du lieu moi Sheet1.Range("a1:i1000").ClearContents Sheet1.Range("a3").CopyFromRecordset rst Sheet1.Range("a3").CurrentRegion.EntireColumn.AutoFit End Sub
Nghiên cứu file này nha.không muốn ghi ra sheet mà em muốn đưa vào mảng để xử lý tiếp thì sửa sao bác chỉ giúp em thêm tí nhé
Xác định dòng cuối trước khi ghi.không đè vào dữ liệu cũ
Sao lưu gọi là để ăn tiền cơ quan.Vậy làm sao kiểm tra được dữ liệu nhập vào.
...
Chẳng may code lỗi không lưu, cuối tháng mở ra thì...code sao lưu vào file đang đóng
Chẳng sao cả. Đâu có gì cho biết không lưu, lưu thiếu hay lưu dư.Chẳng may code lỗi không lưu, cuối tháng mở ra thì...
Bạn xem bài này: LinkTên mình gắn với mã cột căn cước công dân để không thể trùng được anh à
Nhờ anh viết cho em code tra cứu theo cột họ tên lấy ngược lại dữ liệu từ sheet1 đã lưu thông tin sang NhapLieu không anh (Mục đích cập nhật sửa thông tin) sau đó lại lưu đè lai sheet1
Thử xem, biết đâu đúng ý.Dạ em cảm ơớin các anh. em m sửa lại file nhờ anh chị bổ sung code khi lưu nếu trùng thì lưu đè dữ liệu cũ luôn. em cảm ơn các anh
Hoàn toàn có thể được , code sẽ tìm đến file (mà bạn gọi là đang đóng ấy), mở ra (có hoặc không hiển thị lên màn hình), ghi dữ liệu vào, Save, close, và trở về file đang mở. quá trình ấy nếu có thêm các điều kiện khác ( ghi trùng, ghi đè, ghi theo 1 tiêu chí nào đó- ví dụ : mã CC có địa chỉ là Hoàng Mai- ghi vào Sheet HoangMai, Mã CC có địa chỉ là Quỳnh lưu ghi vào Sh QuynhLuu.....), hoặc xử lý thêm các yêu cầu khác (vi dụ ghi vào rồi , lấy cột gì đó (vừa mói ghi) +-*/ với Cột nào đó (dữ liệu cũ) để ghi vào cột mới) . nhưng yêu cầu Dữ liệu phải chuẩn Ví dụ Ngày tháng năm phải theo đúng chuẩn của excel,...).Dạ Đúng ý rồi anh à có cách nào mà vẫn code đó có thể lưu vào một file excel đang đóng không anh. Vì nếu lưu vào sheet Data cũng nguy hiểm anh à vì khi cùng file đó nếu mất dữ liệu thì cũng sẽ mất hết anh à
Xem file. Đưa chuột vào cột G/Sh Nhaplieu và Enter===> xem điều gì diễn ra.Dạ em chưa viết được anh à .em chỉ đọc và sửa code phù hợp với dữ liệu làm hàng ngày anh ạ. Mong anh cố gắng hoàn thiện code lưu vào sheet đang đóng như e trình bày trên à cho e với ạ em xin cảm ơn anh
Tôi đã nói trước rồi, đường dẫn của tôi có thể khác của bạn.Anh xem em với em đã đặt thông tin như anh mà không thấy cập nhật được sang sheet đang đóng anh à
Chỉ cần khi file excel đang mở và nhập dữ liệu xong thì ghi vào excel đang đóng anh à. Điều kiện khi ghi dữ liệu là phải ghi dòng tiếp theo của excel đang đóng, nếu 1 chủ sử dụng có số căn cước trùng nhau thì tạo hộp thoại có ghi đè không vào thông tin chủ củ không. Hàng ngày em nhập dữ liệu liên nên sợ file nhập hỏng là mất hết a à. Excel nhập có bao cột thì ghi vào file đang đóng bấy nhiêu cột anh à. Xin nhờ anh viết giùm em với
Bài đã được tự động gộp:
Cách thức lưu giống như code a viết chỉ khác là lưu vào 1 file excel đang đóng anh à
1. Làm như cũ nó phù hợp với việc nhập liệu hơn. Bạn nhập liệu cho 1 người từ cột A lần lượt các thông tin đến cột G, nhập xong bạn phải Enter xuống dòng để nhập người tiếp theo, lúc này code sẽ nhập các thông tin mà bạn vừa nhập vào CSDL để lưu rồi còn gì. Theo tôi nếu làm theo hình tức là làm cái inputbox để nhập ấy đâm rườm rà hơn và không cần thiếtQuá ngon rồi anh à anh có thể bổ sung thay vì Đưa chuột vào cột G/Sh Nhaplieu mình làm 1. cái selcet chọn từng dòng như hình sau
2. Câu lệnh lưu toàn bộ các dòng nữa là quá tuyệt anh à
Cảm ơn bạn. Tôi có rất nhiều bạn ở Quỳnh lưu (Ngọc Sơn, Quỳnh Mỹ, Quỳnh Thuận, Quỳnh Thiện, Quỳnh Hồng, Quỳnh Lập, Giát...), Có cả Ông Chú ở Quỳnh Lập nữa cơ. Mà theo dõi trên diễn đàn thấy bạn đăng cũng hay có mặt trên diễn đàn này và ở diễn đàn "Tự học VBA" (nick khác) nữa mà, mà là ở nhiều vấn đề không liên quan nhau. Cứ tự hỏi hay bạn làm nghề khác không phải là thống kê, các vấn đề bạn hỏi là hỏi giúp người khác cơ chứ không phải hỏi cho bạn.Mấy hôm lu bu quá anh à . em chưa nt lại cho a được. Em ở quỳnh lưu a à. Khi nào có dịp rảnh mời qua quỳnh lưu quê e chơi a à
Xin Cảm ơn anh nhé
hÌ. em Cảm ơn các anhĐó bạn thấy không rất dễ và đúng địa chỉ.