• Không nhập liệu được bằng Form
  • Không nhập liệu được bằng Form

    ChiMai > 20-07-16, 08:07 AM

    Em đang tạo Form (F_NhapLieu) nhập liệu. Khi thiết kế xong, em nhấn chọn nút Mới và nhập liệu. Nhưng có một số trường không nhập được thông tin, cụ thể như sau:
    1.   Số phiếu em không nhập được.
    -     Số phiếu này mình có thể thiết lập để cho nó chạy tự động tăng dần? (Chỉ cần nhập số phiếu cần ban đầu)
    -     Ngày không nhập được
    -     Khóa không nhập được
    -     Tình trạng không nhập được
    -     KH chăm sóc không nhập được
    ð Nguyên nhân là gì? Cách khắc phục?
    2.   Lấy dữ liệu, cụ thể các trường:
    -     Tên khách hàng, em muốn khi chọn Mã khách hàng thì nó chọn thông tin khách hàng tương ứng..
    -     Người giao dịch, em muốn khi chọn Mã khách hàng thì nó chọn thông tin người giao dịch tương ứng.
    -     Địa chỉ, em muốn khi chọn Mã khách hàng thì nó chọn thông tin địa chỉ tương ứng.
    Nhờ các anh/chị chỉ thêm cho em nhé!

    Tải file
  • RE: Không nhập liệu được bằng Form

    zinzin8x > 20-07-16, 03:11 PM

    ặc. Bạn không đưa file lên đây thì sao biết được nguyên nhân không nhập được chứ.
    thế này nhé: không nhập được có nhất nhiều nguyên nhân, bạn thử xem nó rơi vào trường hợp naof?
    có thế các textbox của bạn để looker là yes; hoặc forms bạn chưa lấy nguồn cho các textbox đó.
    còn câu 2:
    ví dụ table Khach có fiel MaKH; NgGD(người giao dịch); HT (họ tên); và DC(địa chỉ) thì để nhập MaKH và 1 textbox hiện họ tên thì bạn cho textbox đó như sau: =MaKH.column(2)
    còn textbox người giao dịch : = MaKH.column(1)
    còn textbox địa chỉ : = MaKH.column(3)
    còn tùy table của bạn có cấu trúc như thế nào. nhớ rằng số 1; 2 ;3 là thứ tự từ trên xuống của fiel trong talbe được đếm từ 0 (chính là MaKH).
    Vậy bạn áp dụng cho phù hợp với bài của mình nhé.
  • RE: Không nhập liệu được bằng Form

    zinzin8x > 20-07-16, 04:00 PM

    ờ sory bạn có file đính kèm nhỉ. nhưng mà tiếc quá lại là accdb lên mình không giúp thêm được nữa. mình xài access 2003. nhưng đại loại câu 2 thì như mình nói nha. hii
  • RE: Không nhập liệu được bằng Form

    chuvoicon > 20-07-16, 05:25 PM

    Bạn ChiMai có thể convert về acc2003 vì trong forum này đa số dùng acc2003 rất rất ít người dùng acc2007 acc2010
  • RE: Không nhập liệu được bằng Form

    ongke0711 > 20-07-16, 10:41 PM

    1. Bạn không nhập liệu được là do cái Record source của bạn không cho nhập liệu. Record source của bạn là SELECT query kết hợp 2 bảng thông qua INNER JOIN. Bạn đổi quan hệ 2 bảng này thành RIGHT JOIN là nhập được thôi.
    Mã PHP:
    SELECT KHTiemNang.SoPhieuKHTiemNang.NgayKHTiemNang.KhoadmKhachHang.TenKHdmKhachHang.NguoiGDdmKhachHang.DiaChiKHTiemNang.TinhTrangKHTiemNang.KeHoachCS
    FROM dmKhachHang RIGHT JOIN KHTiemNang ON dmKhachHang
    .MaKH KHTiemNang.MaKH
    - Số phiếu tăng dần: cách nhanh nhất là bạn cho trường [SoPhieu] dạng Auto Number. Nó sẽ tự động tăng khi bạn tạo record mới.

    2. Lam như bạn ZinZin hướng dẫn.
    - Tạo 1 combobox tên cboMaKH có Row source là:
    Mã PHP:
    SELECT dmKhachHang.MaKHdmKhachHang.TenKHdmKhachHang.NguoiGDdmKhachHang.DiaChi
    FROM dmKhachHang

    - Theo như cái query là row source cho combobox này, bạn thấy cột 0 - Column(0) - là MaKH, cột 1: TenKH, cột 2: NguoiGD, cột 3: DiaChi.
    - Thiết lập thuộc tính cho combobox: Bound column:1, Column count: 4
    - Tạo các textbox có Control source lần lượt là: =cboMaKH.Column(1) cho Tên KH, = cboMaKH.Column(2) cho textbox Người giao dịch v.v..
  • RE: Không nhập liệu được bằng Form

    hungefi > 23-07-16, 12:24 PM

    Làm như bạn ongke thì ok, nhưng dữ liệu không được truyền vào table  mà chỉ thể hiện ở trên form (do form nó hiểu chỉ tìm kiếm và control source của textbox không chứa trường của table cần lưu dữ liệu.

    Các bạn xem và phản hồi  giùm mình nhé!
  • RE: Không nhập liệu được bằng Form

    ongke0711 > 23-07-16, 01:25 PM

    (23-07-16, 12:24 PM)hungefi Đã viết: Làm như bạn ongke thì ok, nhưng dữ liệu không được truyền vào table  mà chỉ thể hiện ở trên form (do form nó hiểu chỉ tìm kiếm và control source của textbox không chứa trường của table cần lưu dữ liệu.

    Các bạn xem và phản hồi  giùm mình nhé!

    Không biết bạn tổ chức CSDL như thế nào, tại sao lại phải cần lưu lại 1 lần nữa vào table các thông tin của các cột của combobox?
    Đối với form nhập liệu dạng này, chỉ cần lưu trường [MaKH] vào table là đủ rồi, khi cần in report thì mới dùng query lấy thêm thông tin các trường như [TênKH], [DiaChi]... dựa trên trường [MaKH] đã lưu. Nếu bạn làm như cách bạn muốn thì CSDL chưa chuẩn hóa, một loại thông tin mà lưu lặp lại nhiều nơi, tốn dung lượng file.
    Còn nếu vẫn muốn lưu theo mục đích thiết kế của bạn thì dùng macro Setvalue hoặc code VBA.
    Ví dụ:
    - Tạo thêm textbox có Control Source là trường bạn muốn lưu - [TenKH]. Cho nó Visible=No.
    ----------------------------------------------------------
    Private Sub cboMaKH_AfterUpdate()
       Me.TenKH.Value=Me.cboMaKH.Column(1)
    End Sub
    ---------------------------------------------------------
  • RE: Không nhập liệu được bằng Form

    zinzin8x > 23-07-16, 06:07 PM

    (23-07-16, 12:24 PM)hungefi Đã viết: Làm như bạn ongke thì ok, nhưng dữ liệu không được truyền vào table  mà chỉ thể hiện ở trên form (do form nó hiểu chỉ tìm kiếm và control source của textbox không chứa trường của table cần lưu dữ liệu.

    Các bạn xem và phản hồi  giùm mình nhé!

    Mình cũng chưa rõ ý của chủ thớt lắm. làm access cái quan trọng nhất là tổ chức tốt CSDL -tạo bảng là liên kết chúng lại một cách khoa học, làm sao mà mỗi fiel chỉ xuất hiện ít nhất có thể và các bảng phải được rằng buộc với nhau.
    Mình lấy ví dụ: table Makhach thì có fiel Makhach làm khóa chính, còn các trường khác thể hiện thông tin của Makhach.
    table khác thì chỉ cần lấy Makhach ra thôi chứ không lôi những thông tin kia ra làm gì nữa.
    do vậy cái forms bạn dùng để nhập dữ liệu dù lấy nguồn là table hay query thì cũng đều được save vào table hết mà.
    bạn đưa file mdb của bạn lên đây xem nào?
  • RE: Không nhập liệu được bằng Form

    hungefi > 23-07-16, 11:01 PM

    -Nếu vậy mình chỉ cho thể hiện trên form khi chon 1 mã hàng từ combobox và dữ liệu tên hàng mình sẽ lấy từ query.
    -Mình còn 1 vấn đề về các dữ liệu sau:
    VD: nhập control source cho textbox TH =[CB].[COLUMN](1)
           hoặc code VB: 
    Private Sub Combo5_AfterUpdate()
    Me.TH = Combo5.Column(1)
    Me.Refresh
    End Sub
    => Đối với Access 2003: dữ liệu tìm kiếm ok
    => Đối với access 2207: lúc mới tạo thì ok, nhưng khi đóng và chạy lại form thì không thể hiện tên hàng và ĐVT nữa

    Các bạn xem giùm mình nền access 2007 nhé!

    File demo AC2003 của mình:
    https://drive.google.com/file/d/0B9yl0Zb...ef=2&pli=1