Đá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
  Sử dụng Class Module và Kết nối dữ liệu SQL SERVER trong Access VBA lehongduc 62 30,806 03-08-18, 12:41 PM
Bài mới nhất: Cuong Servenet
  Gửi tin nhắn SMS bằng Access lmthu 9 1,759 23-07-18, 07:09 PM
Bài mới nhất: tt1212
  [Help] So sánh giá trị record trên cùng 1 trường trong 1 bảng để có kết quả tính toán đúng tvn_hut 5 249 29-05-18, 10:39 PM
Bài mới nhất: ongke0711
  Xuất dữ liệu từ Access ra Excel theo điều kiện Minh Tiên 13 821 25-05-18, 07:06 PM
Bài mới nhất: ongke0711
  [Thủ Thuật] Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access maidinhdan 23 6,927 24-04-18, 08:13 PM
Bài mới nhất: DooHoaangPhuuc

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line