Đánh giá chủ đề:
  • 7 Votes - 2.71 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tự động tạo CSDL Access bằng VBA
#1
Hôm trước tôi giới thiệu các bạn cách tạo 1 file MDB mớiđể xuất dữ liệu ra đó . Hôm nay xin giới thiệu các bạn cách tạo 1 file Access mới hoàn toàn, đồng thời thông qua VBA để tạo table cùng các field trực tiếp trên đó!


Ví dụ sau đây tạo một database có tên KeToan.MDB trong thư mục chứa database hiện hành, đồng thời tạo luôn một table có tên tbChungTu có cấu trúc:
Ngay_ChungTu (Date/Time), So_ChungTu (AutoNumber), Dien_Giai (Text, 30), Ho_Ten (Text, 25), So_Tien (Currency), Ghi_Chu (Memo)
Bạn hãy tạo một CSDL mới, thiết kế một form và vẽ nút lệnh có tên cmdCreateMDB, rồi gõ đoạn mã 1 vào thủ tục xử lý tình huống OnClick của nút lệnh đó. Xong, bạn mở form, thử bấm nút lệnh cmdCreateMDB để kiểm tra kết quả.
Mã:
Private Sub cmdCreateMDB_Click()
Dim dbKeToan As Database' Khai báo đối tượng Database mới
Dim tdfChungTu As TableDef' Khai báo đối tượng Table mới
Dim sAppPath As String
sAppPath = Me.Application.CurrentProject.Path
Set wrkDefault = DBEngine.Workspaces(0)
If Not (Dir(sAppPath & "\KeToan.mdb") <>"") Then
Set dbKeToan = wrkDefault.CreateDatabase(sAppPath & "\KeToan.mdb", dbLangGeneral)
Else
Set dbKeToan = OpenDatabase(sAppPath & "\KeToan.mdb")
End If
' Tạo đối tượng TableDef mới
Set tdfChungTu = dbKeToan.CreateTableDef("tbChungTu")
' Thêm các field
tdfChungTu.Fields.Append tdfChungTu.CreateField("Ngay_ChungTu", dbDate)
tdfChungTu.Fields.Append tdfChungTu.CreateField("So_ChungTu", dbLong)
tdfChungTu.Fields.Append tdfChungTu.CreateField("Dien_Giai", dbText, 30)
tdfChungTu.Fields.Append tdfChungTu.CreateField("Ho_Ten", dbText, 25)
tdfChungTu.Fields.Append tdfChungTu.CreateField("So_Tien", dbCurrency)
tdfChungTu.Fields.Append tdfChungTu.CreateField("Ghi_Chu", dbMemo)
' Các thuộc tính bổ sung
tdfChungTu.Fields!So_ChungTu.Attributes = dbAutoIncrField
' Thêm table mới vào database
dbKeToan.TableDefs.Append tdfChungTu
' Đóng database
dbKeToan.Close
End Sub
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn haquocquan , connguoi123 , Minh Tiên , hugox03 , duyetnc
#2
(23-08-10, 04:17 PM)Noname Đã viết: Hôm trước tôi giới thiệu các bạn cách tạo 1 file MDB mớiđể xuất dữ liệu ra đó . Hôm nay xin giới thiệu các bạn cách tạo 1 file Access mới hoàn toàn, đồng thời thông qua VBA để tạo table cùng các field trực tiếp trên đó!


Ví dụ sau đây tạo một database có tên KeToan.MDB trong thư mục chứa database hiện hành, đồng thời tạo luôn một table có tên tbChungTu có cấu trúc:
Ngay_ChungTu (Date/Time), So_ChungTu (AutoNumber), Dien_Giai (Text, 30), Ho_Ten (Text, 25), So_Tien (Currency), Ghi_Chu (Memo)
Bạn hãy tạo một CSDL mới, thiết kế một form và vẽ nút lệnh có tên cmdCreateMDB, rồi gõ đoạn mã 1 vào thủ tục xử lý tình huống OnClick của nút lệnh đó. Xong, bạn mở form, thử bấm nút lệnh cmdCreateMDB để kiểm tra kết quả.
Mã:
Private Sub cmdCreateMDB_Click()
Dim dbKeToan As Database' Khai báo đối tượng Database mới
Dim tdfChungTu As TableDef' Khai báo đối tượng Table mới
Dim sAppPath As String
sAppPath = Me.Application.CurrentProject.Path
Set wrkDefault = DBEngine.Workspaces(0)
If Not (Dir(sAppPath & "\KeToan.mdb") <>"") Then
Set dbKeToan = wrkDefault.CreateDatabase(sAppPath & "\KeToan.mdb", dbLangGeneral)
Else
Set dbKeToan = OpenDatabase(sAppPath & "\KeToan.mdb")
End If
' Tạo đối tượng TableDef mới
Set tdfChungTu = dbKeToan.CreateTableDef("tbChungTu")
' Thêm các field
tdfChungTu.Fields.Append tdfChungTu.CreateField("Ngay_ChungTu", dbDate)
tdfChungTu.Fields.Append tdfChungTu.CreateField("So_ChungTu", dbLong)
tdfChungTu.Fields.Append tdfChungTu.CreateField("Dien_Giai", dbText, 30)
tdfChungTu.Fields.Append tdfChungTu.CreateField("Ho_Ten", dbText, 25)
tdfChungTu.Fields.Append tdfChungTu.CreateField("So_Tien", dbCurrency)
tdfChungTu.Fields.Append tdfChungTu.CreateField("Ghi_Chu", dbMemo)
' Các thuộc tính bổ sung
tdfChungTu.Fields!So_ChungTu.Attributes = dbAutoIncrField
' Thêm table mới vào database
dbKeToan.TableDefs.Append tdfChungTu
' Đóng database
dbKeToan.Close
End Sub


Trong trường hợp file Database có đặt Password thì sao ? các bác giúp code cho em với.

Tks
Chữ ký của connguoi123 Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#3
Bạn nghiên cứu thêm topic này để xử lý với file Access có đặt password:
http://thuthuataccess.com/forum/thread-199.html
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
Noname cho mình hỏi chút ! mình muốn file mới tạo (tbChungTu) có tất cả dữ liệu theo ngày / tháng / năm thì phải làm sao ?

Cụ thể là :
File chính gồm có table tbChungTuGoc

Hành động :
tạo file mới có tên tùy ý ( dữ liệu từ tbChungTuGoc theo ngày tháng chỉ định )


bạn giúp mình phần này với !
ღღღღღTài sản của hugox03 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Đọc và Ghi ra QRcode bằng VBA lehongduc 2 128 07-10-17, 04:04 PM
Bài mới nhất: minhminh25767
  Làm sao chạy được code cả trong access 32 bit và access 64 bit haquocquan 1 147 12-09-17, 11:15 PM
Bài mới nhất: maidinhdan
  Hướng Dẫn Tư vấn import data(đuôi csv) vào file access nguồn subasatran 4 356 01-09-17, 03:20 PM
Bài mới nhất: subasatran
  [Hỏi] VBA Access: điều khiển lệnh Excel, Access khác vodainhan 10 1,078 19-07-17, 12:13 PM
Bài mới nhất: vodainhan
  [Hỏi] Nối dữ liệu từ nhiều file Access?? btnnhut 12 670 17-07-17, 08:44 AM
Bài mới nhất: tranthanhan1962

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ