Làm sao để INSERT INTO giá trị DATE trong ACCESS?

frankie123

New Member
Hội viên mới
Mình có 1 FORMS frmNHAP gồm 3 textbox ( tbDATE, tbMAHH, tbSO_LUONG ) va` 1 button để btLuu.

Và 2 table, 1 table NHAP( DATE(short date (dd/mm/yyyy)), MAHH(text), SO_LUONG(number)), 1 table XUATNHAP (DATE,MAHH,TONGSL). Việc mình làm là từ FORMS frmNHAP co' the nhập dữ liệu vào 2 table.
Nhưng mình ko thể INSERT INTO giá trị DATE, sau khi đã nhập trên tbDATE : 22/01/2010 Click vào btLuu thì nó báo lỗi :"syntax error INSERT INTO Statement"

Mình đã thử INSERT từng giá trị thì chỉ bị ngay giá trị DATE.

CODE]
Private Sub btluu_Click()
On Error GoTo Err_btluu_Click

Dim mySQL As String
Dim Db As Database
Set Db = CurrentDb()
mySQL = "INSERT INTO XUATNHAP (DATE, MAHH) VALUES ([FORMS]![frmNHAP]![tbDATE],[FORMS]![frmNHAP]![tbMAHH])"
DoCmd.RunSQL mySQL
[/CODE]

Mọi người giúp mình lỗi này với. Cảm ơn mọi người.
 
Ðề: Làm sao để INSERT INTO giá trị DATE trong ACCESS?

Đây là câu lệnh của bạn
Mã:
Private Sub btluu_Click()
On Error GoTo Err_btluu_Click
Dim mySQL As String
Dim Db As Database
Set Db = CurrentDb()
mySQL = "INSERT INTO XUATNHAP ( DATE, MAHH ) SELECT NHAP.DATE, NHAP.MAHH FROM NHAP WHERE (((NHAP.DATE)=[Forms]![frmNHAP]![tbDATE]))"
DoCmd.RunSQL mySQL

Exit_btluu_Click:
    Exit Sub

Err_btluu_Click:
    MsgBox Err.Description
    Resume Exit_btluu_Click
    
End Sub

Mình lưu ý bạn là trong câu lệnh Insert trên nó sẽ insert toàn bộ dữ liệu của 1 ngày trong bảng NHAP vào XUATNHAP ,cho nên nếu trong bảng NHAP của bạn có nhiều bản ghi cho 1 ngày mà bạn chỉ muốn lấy 1 bản ghi cho vào XUATNHAP thì bạn nên tao thêm 1 trường ID (đảm bảo tính duy nhất) và thay lại câu lệnh WHERE của mình nhé.
 
Sửa lần cuối:
Ðề: Làm sao để INSERT INTO giá trị DATE trong ACCESS?

Đây là câu lệnh của bạn
Mã:
Private Sub btluu_Click()
On Error GoTo Err_btluu_Click
Dim mySQL As String
Dim Db As Database
Set Db = CurrentDb()
mySQL = "INSERT INTO XUATNHAP ( DATE, MAHH ) SELECT NHAP.DATE, NHAP.MAHH FROM NHAP WHERE (((NHAP.DATE)=[Forms]![frmNHAP]![tbDATE]))"
DoCmd.RunSQL mySQL

Exit_btluu_Click:
    Exit Sub

Err_btluu_Click:
    MsgBox Err.Description
    Resume Exit_btluu_Click
    
End Sub

Mình lưu ý bạn là trong câu lệnh Insert trên nó sẽ insert toàn bộ dữ liệu của 1 ngày trong bảng NHAP vào XUATNHAP ,cho nên nếu trong bảng NHAP của bạn có nhiều bản ghi cho 1 ngày mà bạn chỉ muốn lấy 1 bản ghi cho vào XUATNHAP thì bạn nên tao thêm 1 trường ID (đảm bảo tính duy nhất) và thay lại câu lệnh WHERE của mình nhé.

Cảm ơn bạn đã trả lời, mình hiểu ý của bạn rồi. Mình đã thêm trường ID(autonumber) nhưng ở đây của mình là mình làm 1 frmNHAP --> INSERT INTO 1 lúc vào 2 Table : NHAP và XUATNHAP.

Mình đã làm theo cách của bạn nó vẫn báo lỗi như trên : syntax error in INSERT INTO Statement

Ví dụ như mình làm thế này thì no' INSERT vào dc :
Mã:
mySQL1 = "INSERT INTO XUATNHAP (MAHH) VALUES ([FORMS]![frmNHAP]![tbMAHH])"
mySQL2 = "INSERT INTO NHAP (MAHH) VALUES ([FORMS]![frmNHAP]![tbMAHH])"

cả 2 table đều INSERT vào dc. ở trên MAHH(text), nhập từ forms frmNHAP: 000001


nhưng với giá trị là DATE(Short DATE),nhập từ forms frmNHAP: 22/01/2010 thì lại báo lỗi như trên :
Mã:
mySQL1 = "INSERT INTO XUATNHAP (DATE) VALUES ([FORMS]![frmNHAP]![tbDATE])"
mySQL2 = "INSERT INTO NHAP (DATE) VALUES ([FORMS]![frmNHAP]![tbDATE])"

Mình mới làm quen với ACCESS nên kinh nghiệm còn yếu.
Có phải là do mình formating sai của định dạng DATE ko ? Bạn giúp mình cái này với nhé, mình phải cập nhật giá trị DATE bảng XUATNHAp thì mới tính dc tồn kho.
 
Sửa lần cuối:
Ðề: Làm sao để INSERT INTO giá trị DATE trong ACCESS?

Mình có 1 FORMS frmNHAP gồm 3 textbox ( tbDATE, tbMAHH, tbSO_LUONG ) va` 1 button để btLuu.

Và 2 table, 1 table NHAP( DATE(short date (dd/mm/yyyy)), MAHH(text), SO_LUONG(number)), 1 table XUATNHAP (DATE,MAHH,TONGSL). Việc mình làm là từ FORMS frmNHAP co' the nhập dữ liệu vào 2 table.
Nhưng mình ko thể INSERT INTO giá trị DATE, sau khi đã nhập trên tbDATE : 22/01/2010 Click vào btLuu thì nó báo lỗi :"syntax error INSERT INTO Statement"

Mình đã thử INSERT từng giá trị thì chỉ bị ngay giá trị DATE.

CODE]
Private Sub btluu_Click()
On Error GoTo Err_btluu_Click

Dim mySQL As String
Dim Db As Database
Set Db = CurrentDb()
mySQL = "INSERT INTO XUATNHAP (DATE, MAHH) VALUES ([FORMS]![frmNHAP]![tbDATE],[FORMS]![frmNHAP]![tbMAHH])"
DoCmd.RunSQL mySQL
[/code]

Mọi người giúp mình lỗi này với. Cảm ơn mọi người.

mySQL = "INSERT INTO XUATNHAP (DATE, MAHH) VALUES (#" & Format(tbDATE, "mm/dd/yy") & "#, '" & tbMAHH & "')"

Kiểu này nó "dễ chịu hơn" vì viết thế này, Access nó mặc định lấy control theo form hiện hành. Nếu dùng dạng Forms!frmNhap!tbDate, Access sẽ phải:
Kiếm trong danh sách form hiện mở có form nào tên là frmNhap không.
Nếu có thì lấy giá trị trong các control đã chỉ ra.

Đây thuần túy chỉ là kỹ thuật lập trình mà thôi. Cách viết của các bạn không có gì là sai.
 
Ðề: Làm sao để INSERT INTO giá trị DATE trong ACCESS?

cảm ơn các bạn, mình đã làm được rồi.
 

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top