Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Trang 3 của 3 Đầu tiênĐầu tiên 123
Kết quả 21 đến 27 của 27
  1. #21
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Xem file nhé. Mấy cái nút giao dịch, hoàn thành thì tự làm được rồi đúng không.

  2. #22
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    không biết em viết code để update như thế này có đúng ko,. anh kiểm tra dùm em với. nhưng giờ em muốn update cái textbox tổng số tiền vào luôn vào cái table dsthuoc_ban thì làm thế nào hả anh. em gửi file anh viết vào dùm em với.

    Private Sub OK_Click()
    Dim db As DAO.Database
    Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
    Set db = CurrentDb
    Set rs1 = db.OpenRecordset("Dsthuoc_kho", dbOpenDynaset)
    Set rs2 = db.OpenRecordset("Dsthuoc_ban", dbOpenDynaset)
    If rs1.RecordCount <> 0 Then
    rs1.MoveFirst
    End If

    With rs1

    Do Until rs1.EOF
    .Edit
    !soluong = rs1!soluong
    !tempx = "0"

    .Update
    rs1.MoveNext
    Loop

    End With

    rs1.Close

    Set rs1 = Nothing
    With rs2


    .AddNew
    !slban = rs2!slban


    End With

    rs2.Close

    Set rs2 = Nothing


    End Sub

  3. #23
    Ngày tham gia
    Aug 2015
    Bài viết
    1
    File em gửi trống không phần VBA code thì chẳng lẻ anh phải gõ lại hết code từ lúc đầu chỉ em sao? Code từng event đôi khi sẽ liên quan đến nhau, muốn làm event này sẽ là kết quả từ code của event khác.
    Trong file này em xác định lại là làm theo kiểu nào? theo các table, query của bsQ hay làm khác đi nhưng nghiệp vụ thì vẫn giữ nguyên?
    Nếu làm giống bsQ thì sẽ không dùng table tạm cho Unbound form như anh đề nghị ban đầu. Em phân tích cấu trúc table của bsQ sẽ thấy không có table tạm tức là bsQ thiết kế frmBanLe có recordsource trực tiếp là query banle => các code cho nút [Hoàn Thành] và [HủyGD] sẽ khác. Anh đã viết code lại trong file Database6.accdb đó. Theo cách nhìn của anh qua các table và query thì bsQ sẽ làm như sau:
    - Khi chọn [Hoàn thành] sẽ chạy query "saved" và add new record.
    - Khi chọn [Hủy] sẽ xóa records trong 2 tables là Dsthuoc_ban và Dsthuoc_kho. Trong Dsthuoc_ban: sẽ xóa các record có dòng done=0, trong Dsthuoc_kho: sẽ xóa các record có field tempx<>0.
    - Các event này đều liên quan đến hdID. (Em đã code phần hdID chưa?)
    Code nó sẽ là:
    --------------------------------------
    Private Sub huygd_Click()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String, strDelete As String

    strSQL = "SELECT Dsthuoc_kho.*, Dsthuoc_ban.slban " & _
    "FROM Dsthuoc_kho INNER JOIN Dsthuoc_ban ON Dsthuoc_kho.mathuoc = Dsthuoc_ban.mathuoc " & _
    "WHERE (((Dsthuoc_kho.tempx)<>0));"
    Set db = CurrentDb
    Set rs = db.OpenRecordset(strSQL)

    If rs.RecordCount <> 0 Then
    rs.MoveFirst
    End If

    With rs
    Do Until rs.EOF
    .Edit
    !soluong = !soluong + !tempx
    !tempx = 0
    !slban = 0
    .Update
    .MoveNext
    Loop
    End With

    DoCmd.SetWarnings False
    strDelete = "DELETE * FROM Dsthuoc_ban WHERE done=0"
    CurrentDb.Execute strDelete
    DoCmd.SetWarnings True


    Me.List_banle.Form.DataEntry = True

    End Sub
    ------------------------------------
    Private Sub ok_Click()

    DoCmd.OpenQuery "saved"
    Me.List_banle.Form.DataEntry = True

    End Sub
    -----------------------------------

    Còn việc em muốn update textbox thành tiền và Dsthuoc_ban thì dùng macro setvalue hoặc thêm code: Dsthuoc_ban.thanhtien=Me.txtThanhTien. Mấy cái này dễ em tự nghiên cứu thêm đi.

  4. #24
    Ngày tham gia
    Dec 2015
    Bài viết
    0
    file đó em có viết code rồi mà anh, mà không biết có đúng không. để em update lại file này. khi em nhập số liệu vào ô slban thì cột soluong và slban nó chạy thẳng vào table dsthuoc_kho và dsthuoc_ban khi chưa nhấp nút hoàn thành. giờ em muốn khi nhấp nút hoàn thành thì dữ liệu nó mới update vào được không anh. với lại em muốn khi em nhấp nút hoàn thành thì cột thành tiền nó cũng update vào table dsthuoc_ban luôn thì sao hả anh. em chỉ mới học qua access thôi mong anh thông cảm. nói chung em chỉ còn viết code cho cái form ban le nữa là xong. nếu anh viết code form banle giống của bs.quan thì viết dùm em vào file với. nếu anh rảnh thì giúp em, còn không được cũng ko sao. cảm ơn anh nhiều.

  5. #25
    Ngày tham gia
    Dec 2015
    Bài viết
    8
    Tại sao e ko nghĩ khác đi là khi nhấn nút hoàn thành thì chỉ thêm record mới như code a làm ở trên vì đã tự động lưu rồi. Còn nếu ko muốn lưu sẽ bấm nút hủygd hoặc chọn nút X close -> chỉ code cho nút Huỷ gd và áp dụng giống vậy cho nút X thôi.

  6. #26
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Private Sub slban_BeforeUpdate(Cancel As Integer)
    If Me.tempx <> 0 Then
    Me.soluong = Me.soluong + Me.tempx - Me.slban
    Me.tempx = Me.slban
    Me.done = "1"
    Else
    Me.soluong = Me.soluong - Me.slban
    Me.tempx = Me.slban

    Me.thanhtien_thuc = Me.slban * Me.dongia

    End If
    End Sub

  7. #27
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    ở cột slban em phải thêm 1 dòng me.done="1" sau else nữa thì thấy nó mới nhảy sang 1. cám ơn anh nhiều. em làm được rồi.

 

 
Trang 3 của 3 Đầu tiênĐầu tiên 123

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •