Hien em dang tu hoc SQL server 2000. Truoc day em chua hoc mot phien ban SQL server nao. Em rat lung tung khi dung visual basic de moc noi co so du lieu. Em mong anh chi giup em. Xin chan thanh cam on!
Bui Truong Giang
Hồi âm:
Em Giang men! Anh cung muon giai thich van de nay them hon nua hoac co the di sau vao chuong trinh nay nhung lam nhu vay em se khong hieu, va cuoi cung dam ra chan nan boi vi em la nguoi moi hoc ma. Vay anh dua ra buoc co ban dau tien cong them phan vi du ben duoi de em de hieu hon. Truoc khi em thuc hanh, em phai chac chan rang em da them phan reference vao chinh xac thu vien. De tang them phan reference, hay theo tung buoc sau day: 1. Tu the Project menu, nhan chuot vao References.
2. Chon reference thich hop danh cho the version of SQL Server ma em dang su dung: SQL Server 2000
Danh cho SQL Server 2000, em phai tang them phan reference den the Microsoft SQL-DMO Object (Sqldmo.dll). By default, Sqldmo.dll la duoc goi tron trong folder: C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SQLDMO.dll
SQL Server 7.0
Danh cho SQL Server 7.0, em phai tang them phan reference toi the Microsoft SQL-DMO Object Library (Sqldmo.dll).
SQL Server 6.5
Danh cho SQL Server 6.5, em phai tang them phan reference toi the Microsoft SQLOLE Object Library (Sqlole65.dll).
luu y: Neu phan references bi mat, em phai chay Regsvr32.exe dua vao mot trong hai the Sqldmo.dll hoac the Sqlole65.dll file de dat chinh xac phan dang ky di vao COM. De giai thich them cho em de hieu hon nen anh viet ra mot doan code vi du duoi day de lap bang danh sach muc luc dung de chua chua ten cac tac gia. Doan code nay anh viet cho SQL Server 6.5, SQL Server 7.0 hoac SQL Server 2000, de doi cho tat ca vi du cua "SQLOLE " with "SQLDMO".
Dim ServerObject As New SQLOLE.SQLServer
ServerObject.Connect
Dim indexcolname As String
Dim idxcnt As Integer
Dim idxloops As Integer
Dim idxObj As SQLOLE.Index
Dim idxcol As SQLOLE.Column
idxcnt = 0
idxcnt = ServerObject.Databases("pubs").Tables("authors").Indexes(1). _
ListIndexedColumns.count
While idxcnt > 1
Set idxcol = ServerObject.Databases("pubs").Tables("authors"). _
Indexes(1).ListIndexedColumns(1)
indexcolname = idxcol.Name
MsgBox indexcolname
idxloops = 1
While idxloops < idxcnt
idxloops = idxloops + 1
Set idxcol = ServerObject.Databases("pubs").Tables("authors"). _
Indexes(1).ListIndexedColumns(idxloops)
indexcolname = idxcol.Name
MsgBox indexcolname
Wend
idxcnt = 0
Wend
Chuc em vui ve nha!
Phucusa
Tôi xin bổ sung thêm một đoạn mã truy cập SQL Server trực tiếp, không cần dùng thêm một components nào khác. Tuy nhiên cách này đòi hỏi các lệnh xử lý record khó khăn hơn vì hoàn toàn sử dụng ngôn ngữ SQL để truy vấn CSDL... Bù lại, chương trình viết sẽ nhỏ gọn hơn. Tôi xin viết ra đây để các bạn tham khảo. Private Sub Form_Load()
Public objDBConnection
Dim strSQLServerName, strUserName, strPassword As String
Dim RS 'Khai báo vùng làm việc cho cơ sở dữ liệu
Set objDBConnection = CreateObject("ADODB.Connection") On Error Resume Next
'Truy cập CSDL strServerName = "Server" 'Khai báo tên máy chủ SQL Server strUserName = "sa" 'Khai báo tên người sử dụng được cấp quyền trong SQL Server strPassword = "123" 'Khai báo mật khẩu của người sử dụng
objDBConnection.Open "DRIVER=SQL Server;UID=" + strUserName + ";Password=" + strPassword + ";SERVER=" + strSQLServerName
Set RS = objDBConnection.Execute("Select * From TABLE_NAME") 'Hiển thị mẫu dữ liệu của 1 Field Do While Not RS.EOF
Msgbox RS.Fields(0).Value RS.MoveNext
Loop
End Sub
Sau khi truy cập được vào SQL Server, bạn có thể xử lý thay đổi, thêm record, xóa record,... bằng ngôn ngữ SQL như: UPDATE, INSERT, DELETE... Chúc các bạn thành công!
Nguyễn Phương Bình
Anh thử vào Project/Reference rồi chọn Microsoft DAO 3.6 Object Library (nhở bỏ chọn các DAO khác). Chúc thành côngItstudent