yamakashi2003 > 01-05-20, 09:27 PM
tranthanhan1962 > 01-05-20, 09:43 PM
yamakashi2003 > 01-05-20, 10:41 PM
tranthanhan1962 > 01-05-20, 11:25 PM
yamakashi2003 > 01-05-20, 11:53 PM
(01-05-20, 11:25 PM)tranthanhan1962 Đã viết: Bạn phải chạy lệnh RunSQL mới được. Đưa đoạn SQL vào trong cặp ngoặc képEm cảm ơn bác,
Private Sub Command293_Click()
DoCmd.RunSQL "INSERT INTO Table2 ( makh, cash, bill )SELECT Table1.makh, Table1.cash, Table1.bill FROM Table1 WHERE (((Table1.makh)=[Forms]![Form1]![txtmakh]));"
End Sub
Hoặc
Private Sub Command293_Click()
DoCmd.RunSQL "INSERT INTO T_table2 ( MAKH, Hoadon, Quay, TIEN ) SELECT T_DULIEU.MAKH, T_DULIEU.SOHD, T_DULIEU.SOQUAY, T_DULIEU.TIEN FROM T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])
End Sub
* Dòng _DULIEU.TIENFROM bạn để dính liền là lỗi, phải có khoảng trắng giữa _DULIEU.TIEN FROM. Thiếu lệnh DoCmd.RunSQL
Cách làm nhanh nhất là tạo một query cho chạy thử, khi test query chạy OK thì chuyển query thành SQL. Nếu trong SQL có dấu ngoặc kép thì chuyển nó thành ngoặc đơn trước. trong đoạn mã VBA tạo dòng lệnh: DoCmd.RunSQL ""
Copy toàn bộ đoạn mã SQL đã tạo, nhét vào giữa cặp ngoặc kép, Những đoạn SQL bị xuống dòng phải đưa lên thành 1 dòng, giữa 2 dòng phải có khoảng trắng. Nếu đoạn SQL dài quá một dòng không đủ phải chia thành 2 dòng thì phải biến thành 2 đoạn trong ngoặc kép và nối với nhau bằng khoảng trắng, dấu _ và dấu &
Ví dụ:
DoCmd.RunSQL "INSERT INTO T_table2 ( MAKH, Hoadon, Quay, TIEN ) SELECT T_DULIEU.MAKH, T_DULIEU.SOHD, T_DULIEU.SOQUAY, T_DULIEU.TIEN FROM T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])
Phải sửa lại là:
DoCmd.RunSQL "INSERT INTO T_table2 ( MAKH, Hoadon, Quay, TIEN ) SELECT T_DULIEU.MAKH, T_DULIEU.SOHD, T_DULIEU.SOQUAY, T_DULIEU.TIEN FROM " _
& "T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])"
yamakashi2003 > 02-05-20, 12:06 AM
(01-05-20, 11:25 PM)tranthanhan1962 Đã viết: Bạn phải chạy lệnh RunSQL mới được. Đưa đoạn SQL vào trong cặp ngoặc kép.............. (((Table1.makh)=[Forms]![Form1]![txtmakh]));"
Private Sub Command293_Click()
DoCmd.RunSQL "INSERT INTO Table2 ( makh, cash, bill )SELECT Table1.makh, Table1.cash, Table1.bill FROM Table1 WHERE (((Table1.makh)=[Forms]![Form1]![txtmakh]));"
End Sub
Hoặc
Private Sub Command293_Click()
DoCmd.RunSQL "INSERT INTO T_table2 ( MAKH, Hoadon, Quay, TIEN ) SELECT T_DULIEU.MAKH, T_DULIEU.SOHD, T_DULIEU.SOQUAY, T_DULIEU.TIEN FROM T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])
End Sub
* Dòng _DULIEU.TIENFROM bạn để dính liền là lỗi, phải có khoảng trắng giữa _DULIEU.TIEN FROM. Thiếu lệnh DoCmd.RunSQL
Cách làm nhanh nhất là tạo một query cho chạy thử, khi test query chạy OK thì chuyển query thành SQL. Nếu trong SQL có dấu ngoặc kép thì chuyển nó thành ngoặc đơn trước. trong đoạn mã VBA tạo dòng lệnh: DoCmd.RunSQL ""
Copy toàn bộ đoạn mã SQL đã tạo, nhét vào giữa cặp ngoặc kép, Những đoạn SQL bị xuống dòng phải đưa lên thành 1 dòng, giữa 2 dòng phải có khoảng trắng. Nếu đoạn SQL dài quá một dòng không đủ phải chia thành 2 dòng thì phải biến thành 2 đoạn trong ngoặc kép và nối với nhau bằng khoảng trắng, dấu _ và dấu &
Ví dụ:
DoCmd.RunSQL "INSERT INTO T_table2 ( MAKH, Hoadon, Quay, TIEN ) SELECT T_DULIEU.MAKH, T_DULIEU.SOHD, T_DULIEU.SOQUAY, T_DULIEU.TIEN FROM T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])
Phải sửa lại là:
DoCmd.RunSQL "INSERT INTO T_table2 ( MAKH, Hoadon, Quay, TIEN ) SELECT T_DULIEU.MAKH, T_DULIEU.SOHD, T_DULIEU.SOQUAY, T_DULIEU.TIEN FROM " _
& "T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])"
tranthanhan1962 > 02-05-20, 12:38 AM
(02-05-20, 12:06 AM)yamakashi2003 Đã viết: .............. (((Table1.makh)=[Forms]![Form1]![txtmakh]));"Quan trong là code chạy Ok là được. SQL tự tạo khi chuyển từ query đôi khi thừa Những cặp (), thừa thì không sao nhưng thiếu thì lỗi. Kệ nó. Yêu cầu chạy mã OK thì đạt yêu cầu.
.............. [i]"T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])"[/i]
Em đã làm theo bác chỉ rồi ạ, nhưng bác cho em hỏi ở trong 2 đoạn cuối của code trên thì hình như thừa dấu ) mà em đã bôi đỏ phải không ạ,
Em thấy code trong query cũng thừa dấu ( )
yamakashi2003 > 02-05-20, 08:22 AM
(02-05-20, 12:38 AM)tranthanhan1962 Đã viết:Em cảm ơn bác,(02-05-20, 12:06 AM)yamakashi2003 Đã viết: .............. (((Table1.makh)=[Forms]![Form1]![txtmakh]));"Quan trong là code chạy Ok là được. SQL tự tạo khi chuyển từ query đôi khi thừa Những cặp (), thừa thì không sao nhưng thiếu thì lỗi. Kệ nó. Yêu cầu chạy mã OK thì đạt yêu cầu.
.............. [i]"T_DULIEU WHERE T_DULIEU!makh= [Forms]![Tên Form]![txtmakh])"[/i]
Em đã làm theo bác chỉ rồi ạ, nhưng bác cho em hỏi ở trong 2 đoạn cuối của code trên thì hình như thừa dấu ) mà em đã bôi đỏ phải không ạ,
Em thấy code trong query cũng thừa dấu ( )
(3*5) + 2 = (((3*5))+2) đâu có sao
Xuân Thanh > 02-05-20, 10:17 AM
tranthanhan1962 > 02-05-20, 11:17 AM