Thứ Hai, 14 tháng 1, 2008

Tạo bảng Access bằng VB6

Đó hỏi: Xin e-CHÍP hướng dẫn cách viết mã VB6 để kiểm tra xem một bảng nào đó đã có trong cơ sở dữ liệu Access hay chưa và tạo bảng mới dựa trên cấu trúc bảng đã có.

Đây trả lời: Trong VB6, bạn hãy tạo một project mới kiểu Standard EXE. Bạn chọn Project > References để thêm reference Microsoft DAO 3.6 Object Library (hoặc phiên bản mới nhất) vào project. Giả sử trong cùng thư mục chứa ứng dụng này có một database mang tên ViDu.MDB, trong đó có một table mang tên tbCauTrucCoSan và table này có thể có hoặc không có record. Ta sẽ tạo một table mới có tên tbNew từ cấu trúc table tbCauTrucCoSan. Có thể sử dụng đối tượng TableDef để khai báo cấu trúc, nhưng viết mã lệnh hơi rối rắm, dài dòng. Ví dụ này dựa trên một cách làm đơn giản: dùng SQL để tạo một table tbNew từ table tbCauTrucCoSan, rồi xóa các record (nếu có) trong table tbNew. Trên form mặc định Form1, bạn vẽ một nút lệnh có tên cmdCheckCreateTable, rồi gõ đoạn mã 1 vào form. Bạn nên nhập một số record vào table tbCauTrucCoSan để kiểm tra cả hai trường hợp: có hoặc không có record. Sau khi tạo tbNew, bạn thử tạo lần nữa để kiểm tra hàm lTableCoRoi().

Đoạn mã 1

Dim dbViDu As Database ' Khai báo đối tượng Database mới Private Sub cmdCheckCreateTable_Click() Set wrkDefault = DBEngine.Workspaces(0) Set dbViDu = OpenDatabase(App.Path & "\ViDu.mdb") If lTableCoRoi("tbNew") Then MsgBox "Table tbNew có rồi!" Exit Sub End If sSQL = "SELECT * INTO tbNew FROM tbCauTrucCoSan;" dbViDu.Execute (sSQL) ‘ Tạo table mới sSQL = "DELETE * FROM tbNew;" dbViDu.Execute (sSQL) ‘ Hủy các record, nếu có dbViDu.Close End Sub Function lTableCoRoi(sTenTable As String) As Boolean Dim i As Integer lTableCoRoi = False For i = 0 To dbViDu.TableDefs.Count - 1 If UCase(dbViDu.TableDefs(i).Name) = UCase(sTenTable) Then lTableCoRoi = True Exit For End If Next End Function

Không có nhận xét nào: