Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Nhập dữ liệu vào 2 table khác nhau bằng form
#1
Relationship của mình như sau
[Hình: fsafasf-2_zps05d61d6b.jpg]
Còn đây là form thêm xe
[Hình: fasf_zpsb7a895bb.jpg]
Sau khi nhấn nút "Khách gửi xe" thì mình mới chỉ lưu được record vào trong tabble KHACHHANG, còn table HOADON, thì lại chả lưu cái gì cả.
Vậy cho mình hỏi, làm thế nào để sau khi ấn nút "Khách gửi xe" kia, thì dữ liệu vừa lưu vào table KHACHHANG, vừa lưu các field tương ứng vào trong table HOADON?

À cho mình hỏi 1 cái nữa. Làm thế nào để liên kết 1 combo box với 1 textbox? Ví dụ ở combo Mã NV mình chọn 1, thì textbox Tên NV sẽ hiện lên tên của người đó.
Chữ ký của vuquanghai Xin chào, mình là vuquanghai, Tham gia http://thuthuataccess.com/forum từ ngày 26-04 -13.
Reply
Những người đã cảm ơn
#2
Bạn viết lại lệnh cho cái nút "Khách gởi xe" thay vì viết bằng macro bạn chọn [Event Procedure] ... sau đó bỏ đoạn code này vào.
Bạn cần xác định các khoá chính ở rs2 để điền vào cho phù hợp, code bên dưới là ví dụ còn sơ sài khi nào bạn làm ổn định sẽ bẫy lỗi sau, lưu ý là bạn phải viết cái rs2 điền đầy đủ các trường trong bảng HoaDon vào bên dưới mình mới ghi 2 cái bks vs loaixe nên bỏ vào nó sẽ báo lỗi thiếu thông tin.
Mã:
Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("khachhang")
    Set rs2 = db.OpenRecordset("hoadon")
    rs.MoveFirst
    rs2.MoveFirst

    Do While (rs.EOF = False)
        If (rs.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value) Then
            MsgBox "Ten da co"
            Exit Sub
        End If
        rs.MoveNext
    Loop
    rs.AddNew
    rs.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value
    rs.Fields("LOAIXE") = LOAIXE.Value
    rs.Fields("BAIGUIXE") = BAIGUIXE.Value
    rs.Update
    rs.Close
    rs2.MoveNext
    rs2.AddNew
    rs2.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value
    rs2.Fields("LOAIXE") = LOAIXE.Value
    rs2.Update
    rs2.Close
    db.Close
    MsgBox "ok"
End Sub
Chữ ký của quan_pc Lắp đặt Internet VNPT tại Điện Bàn - Quảng Nam - Hotline: 0915.636.745
ღღღღღTài sản của quan_pc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#3
Hiện textbox khi chọn combobox, chỗ textbox "cho" cái này vào: =[combobox].[column](1)
Chúc mừng Bác Quan_pc đã lên "Thành viên đẳng cấp"
Reply
Những người đã cảm ơn quan_pc
#4
rs2 là cái gì hả bác ơi sad
Chữ ký của vuquanghai Xin chào, mình là vuquanghai, Tham gia http://thuthuataccess.com/forum từ ngày 26-04 -13.
Reply
Những người đã cảm ơn
#5
(01-05-13, 06:43 PM)vuquanghai Đã viết: rs2 là cái gì hả bác ơi sad
rs2 để mở recordset bảng Hóa đơn
Reply
Những người đã cảm ơn
#6
(01-05-13, 01:41 PM)quan_pc Đã viết: Bạn viết lại lệnh cho cái nút "Khách gởi xe" thay vì viết bằng macro bạn chọn [Event Procedure] ... sau đó bỏ đoạn code này vào.
Bạn cần xác định các khoá chính ở rs2 để điền vào cho phù hợp, code bên dưới là ví dụ còn sơ sài khi nào bạn làm ổn định sẽ bẫy lỗi sau, lưu ý là bạn phải viết cái rs2 điền đầy đủ các trường trong bảng HoaDon vào bên dưới mình mới ghi 2 cái bks vs loaixe nên bỏ vào nó sẽ báo lỗi thiếu thông tin.
Mã:
Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Set db = CurrentDb
    Set rs = db.OpenRecordset("khachhang")
    Set rs2 = db.OpenRecordset("hoadon")
    rs.MoveFirst
    rs2.MoveFirst

    Do While (rs.EOF = False)
        If (rs.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value) Then
            MsgBox "Ten da co"
            Exit Sub
        End If
        rs.MoveNext
    Loop
    rs.AddNew
    rs.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value
    rs.Fields("LOAIXE") = LOAIXE.Value
    rs.Fields("BAIGUIXE") = BAIGUIXE.Value
    rs.Update
    rs.Close
    rs2.MoveNext
    rs2.AddNew
    rs2.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value
    rs2.Fields("LOAIXE") = LOAIXE.Value
    rs2.Update
    rs2.Close
    db.Close
    MsgBox "ok"
End Sub

1/ Không cần duyệt rs chi cho dài dòng sẽ chậm hơn, chỉ cần thay
Mã:
...
    rs.MoveFirst
    rs2.MoveFirst

    Do While (rs.EOF = False)
        If (rs.Fields("BIENKIEMSOAT") = BIENKIEMSOAT.Value) Then
            MsgBox "Ten da co"
            Exit Sub
        End If
        rs.MoveNext
    Loop
....

thành

Mã:
If Dcount("BIENKIEMSOAT","khachhang") > 1 Then
    MsgBox "Ten da co"
    Exit Sub
Else
    rs.AddNew
    ....

rs2 cũng không cần MoveFirst, AddNew ngay

Thân mến
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn quan_pc


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Refresh Form và tiếp tục hoạt động Godspear 2 84 08-12-16, 12:48 PM
Bài mới nhất: Godspear
  Tạo Menu dạng TreeView bằng Query (không dùng ActiveX) ongke0711 4 268 06-12-16, 09:16 PM
Bài mới nhất: toancvp
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 39 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 49 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 209 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq

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ơ