Đá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 ====================
Cái chai không đầu
Mà sao có cổ
====================
A fan of Alice Cooper!
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 ====================
Cái chai không đầu
Mà sao có cổ
====================
A fan of Alice Cooper!
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 danh sách khách hàng với nhiều hỗ trợ tranthanhan1962 5 323 18-07-15, 11:03 PM
Bài mới nhất: tranthanhan1962
  Hỏi cách xử lý form để khi nhập liệu đến cuối không nhảy qua record mới? diepthanh 6 142 15-07-15, 06:23 PM
Bài mới nhất: tranthanhan1962
  [Help] Tạo form chỉnh sửa nội dung của một bản ghi bất kỳ hkht 9 173 13-07-15, 08:08 AM
Bài mới nhất: hkht
  [Hỏi] Navigation Form tieuphung88 15 506 13-07-15, 07:47 AM
Bài mới nhất: tieuphung88
  Tạo nút tìm kiếm ngẫu nhiên xuannguyen13 5 248 09-07-15, 08:20 PM
Bài mới nhất: maidinhdan

Chuyển nhanh:


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