Hỏi về kết nối excel và SQL Server
Sau khi con tham khảo ADO căn bản, con có được code thế này
Sub test()
Dim cnn As New ADODB.Connection
Dim recordset As ADODB.recordset
Dim src As String
Dim col As Integercnn.Open "Driver=SQL Server;SERVER=CDUNG;UID=;PWD=;DATABASE=TEST"
If cnn.State = 1 Then
MsgBox "Ket noi thanh cong"
Else
MsgBox "Ket noi that bai"
End IfSet recordset = New ADODB.recordset
With recordset
src = "SELECT * FROM Nhanvien"
.Open Source:=src, ActiveConnection:=Connection
For col = 0 To recordset.Fields.Count – 1
Range("A1").Offset(0, col).Value = recordset.Fields(col).Name
NextRange("A1").Offset(1, 0).CopyFromRecordset recordset
End WithSet recordset = Nothing
cnn.Close
Set cnn = NothingEnd Sub
Con đã kết nối được vào SQL Server (msgbox báo đã kết nối) nhưng lại không thể kết nối vào database nên không truy xuất được data (thậm chí khi con để trống phần server và database trong lệnh kết nối thì vẫn kết nối được). Xin cho con hỏi làm cách nào để kết nối vào trong database TEST. Con xin cám ơn
Thay đoạn này:
.Open Source:=src, ActiveConnection:=Connection
bằng đoạn này:
.Open Source:=src, ActiveConnection:=Cnn ' cái này bạn định nghĩa trên kia đó
Bạn viết vòng lặp dài dòng, thực ra chỉ cần
Sheet1.Range("A1").CopyFromRecordset recordset
là thỏa mãn công việc của bạn (vì bạn chọn hết nguyên 1 bảng!)
– Chú ý server
– Chú ý định nghĩa biến : ví dụ recordset nên định nghĩa rs vì từ recordset là một từ khóa trong thư viện ADO
Cám ơn bạn rất nhiều, mình đã tìm được cái sai của mình, mấu chốt là ở chỗ
.Open Source:=src, ActiveConnection:=Connection
Ghi Connection là sai hoàn toàn dẫn đến việc code bị lỗi
www.giaiphapexcel.com/diendan/threads/h%E1%BB%8Fi-v%E1%BB%81-k%E1%BA%BFt-n%E1%BB%91i-excel-v%C3%A0-sql-server.50020/
Khoá học Trưởng phòng nhân sự
Nguồn nhân lực là một trong Tứ trụ kinh doanh của doanh nghiệp, có tác động tới sự tồn tại và phát triển bền...
Xem khóa học
1. lỗi khoản trắng ngay chỗ DATA_BASE -> sửa lại DATABASE
2. Chưa khởi tạo biến rec thì làm sao dùng được