Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Code VBA tìm kiếm cho Form
#1
database của mình gồm có 2 bảng:
Sample (STT, NAME , IDSOURCE, DETAIL)
Source (IDSOURCE , NAME, INFORMATION )
Mình có tạo 2 form
FrmSample và FrmSource.
Trên FrmSample có một ComboxSource ( lấy nguồn từ bãng Source). Ý mình ở đầy là khi người ta bấn nút Save trên FrmSample thì nó sẽ kiểm tra giá trị ở ComboxSource có trong bãng Source chưa ( vì đôi khi người khác hong chọn mà họ gõ một giá trị nào đó ). Nếu chưa có giá trị thì nó mở FrmSource lên để nhập giá trị đó vào bãng Source trước, còn nếu có rồi thì cho ghi vô bãng table.
Mình không biết viết Code ở chổ làm sao chể check giá trị của ComboxSource đã có ở bãng Source hay chưa, bạn nào giúp mình với
Chữ ký của lethuongton Xin chào, mình là lethuongton, Tham gia http://thuthuataccess.com/forum từ ngày 22-03 -13.
Reply
Những người đã cảm ơn
#2
Bạn cần 1 combo, tại sự kiện NotIntheList bạn tham chiếu đến một thủ tục khác để bật ra form nhập liệu (dạng như ở đây)
Mã PHP:
Private Sub ExternalResponsiblity_NotInList(NewData As StringResponse As Integer)
     
Gọi thủ tục mở form
    NotIntheList ExternalResponsiblity
"ExternalResponsiblity"2Response
End Sub 
Mã PHP:
Private Sub NotIntheList(iObj As ComboBoxiActName As StringiParam As LongtResponse As long)
     
Gọi form để cập nhập
    objOutList 
True
    MsgBox 
"Khong co trong danh muc"vbCritical
    DoCmd
.OpenForm "FormName"acNormal, , , , acDialog
    tResponse 
0
    iObj 
""
    
iObj.Requery
    objOutList 
False
End Sub 
Tôi chỉ cung cấp dạng ví dụ, bạn có thể sửa thêm cho đúng
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn MatTroiNguQuen , lethuongton
#3
Bác paulsteigel đúng là "Thành Viên đẳng cấp". Mình thích đọc các câu trả lời của bác (học hỏi dc nhiều kinh nghiệm )015
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn
#4
(04-10-13, 11:40 PM)paulsteigel Đã viết: Bạn cần 1 combo, tại sự kiện NotIntheList bạn tham chiếu đến một thủ tục khác để bật ra form nhập liệu (dạng như ở đây)
Mã PHP:
Private Sub ExternalResponsiblity_NotInList(NewData As StringResponse As Integer)
     
Gọi thủ tục mở form
    NotIntheList ExternalResponsiblity
"ExternalResponsiblity"2Response
End Sub 
Mã PHP:
Private Sub NotIntheList(iObj As ComboBoxiActName As StringiParam As LongtResponse As long)
     
Gọi form để cập nhập
    objOutList 
True
    MsgBox 
"Khong co trong danh muc"vbCritical
    DoCmd
.OpenForm "FormName"acNormal, , , , acDialog
    tResponse 
0
    iObj 
""
    
iObj.Requery
    objOutList 
False
End Sub 
Tôi chỉ cung cấp dạng ví dụ, bạn có thể sửa thêm cho đúng
Thanks bạn nhiều nha.
Mình đã làm được rồi.
Mình có tìm được một link tham khảo ở đây:
Support Microsoft
Tuy nhiên, mình cũng chưa hiểu về sao lại có đoạn:

Mã PHP:
Private Sub Form_Load () 
If 
Not IsNull(Me.OpenArgsThen
      
' If form's OpenArgs property has a valueassign the contents
      
' of OpenArgs to the CompanyName field. OpenArgs will contain
      ' 
a company name if this form is opened using the OpenForm
      
' method with an OpenArgs argument, as done in the Orders
      ' 
forms CustomerID_NotInList event procedure.
      
Me![CompanyName] = Me.OpenArgs
   End 
If
End Sub 
Mình vẫn chưa hiểu về lệnh Me.OpenArgs lắm ( do mới tìm hiểu thời gian gần đây ). Nếu bạn biết thì giải thích giúp mình nha. [/php]
Chữ ký của lethuongton Xin chào, mình là lethuongton, Tham gia http://thuthuataccess.com/forum từ ngày 22-03 -13.
Reply
Những người đã cảm ơn
#5
(05-10-13, 03:52 PM)lethuongton Đã viết: Mình vẫn chưa hiểu về lệnh Me.OpenArgs lắm ( do mới tìm hiểu thời gian gần đây ). Nếu bạn biết thì giải thích giúp mình nha. [/php]

Me.OpenArgs được sử dụng để truyền tham số cho một form. Trong quá trình làm việc, người ta cần một form thực hiện thao tác nào đó trong lúc tải vào bộ nhớ và các thao tác này có thể khác nhau. Để làm điều này, người ta có 2 cách:
1. Định nghĩa một biến toàn cục và khi form tải lên thì đọc biến đó để biết là phải làm gì ví dụ tải lên 1 bản ghi, tạo bản ghi mới, thay đổi tiêu đề form ...vv
Cách này không an toàn và thường chỉ ứng dụng khi phải có một nhóm các tham số phức tạp.

2. Truyền qua câu lệnh gọi form
docmd.OpenForm "Tên form",acNormal,,,,acDialog,"Tham_so"

Với dạng này, ta có thể lấy tham số từ việc đọc thuộc tính Me.OpenArgs lúc tải form để: lấy thông tin bản ghi, thiết lập bộ lọc ....vv mà không cần phải có biến nào cả.
Trong câu hỏi của bạn thì Textbox Tên công ty sẽ được truyền vào giá trị tham số của lệnh gọi form trước đó.
Me![CompanyName] = Me.OpenArgs
Xin có vài dòng chia sẻ như vậy!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn lethuongton
#6
Thanks bạn nhiều
Chữ ký của lethuongton Xin chào, mình là lethuongton, Tham gia http://thuthuataccess.com/forum từ ngày 22-03 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  FORM LOGIN honglv157 1 64 26-08-15, 05:27 PM
Bài mới nhất: tranthanhan1962
  Hướng Dẫn Khóa form đã mở khi mở form kế tiếp jeck09nt 3 146 24-08-15, 10:49 PM
Bài mới nhất: tranthanhan1962
  [Help] Để form access khi khởi động luôn hiển thị bản ghi cuối cùng khi đóng vinamilk0510 5 667 05-08-15, 01:45 PM
Bài mới nhất: vinamilk0510
Question Canh giữa các đối tượng trên form khi maximize hay restore form trikhoi 4 2,248 03-08-15, 11:56 PM
Bài mới nhất: tranthanhan1962
  Tùy biến kích thước Form Noname 8 3,553 03-08-15, 11:51 PM
Bài mới nhất: tranthanhan1962

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)