Gian hàng bán Rao vặt Hỏi đáp Thêm
Ứng dụng Thông báo Hỗ trợ Đăng ký Đăng nhập
1 thành viên trả lời
tuncon Trả lời cuối cùng: 10/06/2009
Thành viên tích cực nhất

anhcuong83vn

1 lượt cảm ơn

Dùng Make-Table query trong Access?

tunyeu

10/06/2009 - 10:53
Tôi dùng Make-Table Query để tạo các table làm dữ liệu cho các Form và Report. Tôi đã vào Tool > Options > Edit/Find và bỏ chọn Action Queries, nhưng khi mở Form hoặc Report vẫn xuất hiện thông báo: "The existing table 'Tên Table' will be deleted before you run the query. Do you want to continue anyway?". Có cách nào để Access không hiển thị thông báo trên?

Vui lòng đăng nhập ID VATGIA để gửi trả lời của bạn

tuncon

10/06/2009 - 10:54
Bạn có thể khắc phục câu thông báo như vậy bằng cách sử dụng lệnh VBA. Trong VBA, nếu bạn không trực tiếp viết câu lệnh SQL được thì làm như sau: khi thiết kế Make-Table query, bạn chọn mục SQL View trên trình đơn View để mở cửa sổ chứa nội dung câu lệnh SQL, đánh dấu chọn rồi chép vào VBA.
Đoạn mã 1 minh họa việc tạo một table có tên tbNewTable từ table có sẵn tên tbDanhSach. Căn cứ vào ví dụ này, bạn có thể áp dụng vào nhu cầu thực tế của mình.
Bạn lưu ý: để sử dụng đối tượng Database, trong cửa sổ soạn thảo VBA, bạn phải chọn mục Tools > References, rồi chọn mục Microsoft DAO 3.6 Object Library (hoặc phiên bản cao nhất của DAO Object Library) trong hộp thoại References.

Đoạn mã 1

Dim db As Database
Private Sub cmdTaoTable_Click()
Dim sSQL As String
Set db = CurrentDb
If lTableCoRoi("tbNewTable") Then
If MsgBox("Table tbNewTable co roi! Xoa de tao moi?", vbDefaultButton2 + _
vbYesNo + vbQuestion) = vbYes Then
DoCmd.DeleteObject acTable, "tbNewTable"
Else
Exit Sub
End If
End If
sSQL = "SELECT tbDanhSach.hoten INTO tbNewTable " & _
"FROM tbDanhSach;"
db.Execute (sSQL)
Set db = Nothing
End Sub
Function lTableCoRoi(sTenTable As String) As Boolean
Dim i As Integer
lTableCoRoi = False
For i = 0 To db.TableDefs.Count - 1
If UCase(db.TableDefs(i).Name) = UCase(sTenTable) Then
lTableCoRoi = True
Exit For
End If
Next
End Function