-
giúp đở về code vba
http2 > 26-07-19, 11:11 AM
Chào mọi người lại làm phiền mọi người nữa rồi . giúp xem giùm đoạn code này với ạ . không biết khai báo bị lỗi chổ nào mà không thể bắt được sự kiệm msgbox .
Dòng chữ màu đỏ khi bắt sự msgx thì không hiện hộp thoại browsefile nữa . nếu không có bắt sự kiện msgx thì vẫn chạy bình thường .
Rất mong anh em giúp đở !
Function BrowseFile() As String
Dim strFilter As String
Dim lngFlags As Long
Dim Msgx As Variant
strFilter = ahtAddFilterItem(strFilter, "Access Files (*.mda, *.mdb)", _
"*.MDA;*.MDB")
strFilter = ahtAddFilterItem(strFilter, "dBASE Files (*.dbf)", "*.DBF")
strFilter = ahtAddFilterItem(strFilter, "Text Files (*.txt)", "*.TXT")
strFilter = ahtAddFilterItem(strFilter, "All Files (*.*)", "*.*")
Dim result As Variant
result = ahtCommonFileOpenSave(InitialDir:="C:\", _
Filter:=strFilter, FilterIndex:=4, Flags:=lngFlags, _
DialogTitle:="Chon file!")
If result = "" Then
Msgx = MsgBoxUni(DLookup("[Description]", "symsglib", "[msgNo] = 32"), vbCritical, DLookup("[msgtitle]", "symsglib", "[msgNo] = 32"))
If Msgx = vbOK Then
Image1 = Null
End If
Exit Function
End If
If lngFlags And ahtOFN_ALLOWMULTISELECT Then
If IsArray(result) Then
Dim i As Integer
For i = 0 To UBound(result)
BrowseFile = result(i)
Next i
Else
BrowseFile = result
End If
Else
BrowseFile = result
End If
Debug.Print BrowseFile
End Function -
RE: giúp đở về code vba
ongke0711 > 26-07-19, 01:05 PM
Bạn đem cái msgbox ra ngoài hàm browse file đi.
Msgbox của bạn là muốn xử lý kết quả từ hàm Browsefile() đúng không?
Sau khi xử lý xong nếu kết quả không ok thì gọi lại hàn Browse File. Bạn đưa nó vô giữa hàm đó thì có thể nó không hiểu. Tôi cũng không biết nội dung cái message của bạn là gi? -
RE: giúp đở về code vba
http2 > 30-07-19, 10:22 AM
Dạ em cám ơn anh . em hiểu rồi ạ . đúng là để sai chổ là sẽ không hiểu liền . ^^
Anh em hỏi này tí nữa . em có 1 textbox khi em dbl click nó sẽ hiện 1 form mới . nhưng làm cách nào để form mới luôn theo cái textbox cho dù cái textbox nằm ở đâu trên form chính(VD : luôn nằm bên trái hay phải , trên hay dưới . Do mình chỉ định khi code.) Em cám ơn anh ! -
RE: giúp đở về code vba
ongke0711 > 30-07-19, 10:57 AM
Bạn sử dụng các thuộc tính Top, Left, Heigh của Control. Khi mở Form mới lên sẽ Move đến vị trí Top, Left của cái Textbox.
Vậy bài toán là làm sao lấy thông số Top, Left, Heigh của textbox? -> Có 2 cách:
1. Dùng phương thức "OpenArgs" để truyền tham số. Bạn tự ngâm cứu nó đi. Nó rất mạnh và ứng dụng nhiều lắm đó.
2. Truyền tham số cho biến toàn cục.
Tôi chỉ bạn cách 2 cho gọn và dễ với bạn hơn. Cách kia dài dòng hơn.
- Khi Double lick textbox sẽ thực hiện lệng OpenForm + gán tham số vị trí cho biến. Khai báo 2 biến toàn cục trong Module nào cũng được. Biến này sẽ được tạo ngay khi ứng dụng Load.
Mã PHP:Public frmTop As Long
Public frmLefft As Long
Mã PHP:Private Sub txtTextBox1_DoubleClick()
frmTop = Me.txtTextBox1.Top + Me.txtTextBox1.Height
frmLeft = Me.txtTextBox1.Left
Docmd.OpenForm "Form1"
End Sub
- Ở sự kiện Form_Load của form mới bạn cần mở:
Mã PHP:Private Sub Form_Load()
Me.Move frmLeft, frmTop
End Sub -
RE: giúp đở về code vba
http2 > 31-07-19, 11:05 AM
dạ em cám ơn anh . em làm cái cách hai trước . rồi em sẽ ngâm cứu cái"OpenArgs". xong sẽ sửa lại dùng "OpenArgs" . em cám ơn anh lần nữa ^^ -
RE: giúp đở về code vba
http2 > 07-08-19, 12:07 PM
em nghiên cứu cái openArgs . em truyền tham số cho openArgs thì được rồi như nó không như mong muốn .
em vi dụ "
cái textbox em tham số left = 2500, top = 1500 , width = 2200 , height = 480
Mã PHP:DoCmd.OpenForm "frmA", , , , , acDialog, Textbox.Left
trên frmA openform em ghi
mặt định cái form khi mở sẽ lấy tham số của left của cái textbox . vẫn chưa thể đi theo được .hicMã PHP:Me.Form.Move Me.OpenArgs
-
RE: giúp đở về code vba
ongke0711 > 07-08-19, 08:31 PM
- Theo code trên của bạn, thì bạn chỉ truyền 1 tham số Left trong OpenArgs thôi nhé, phải có thêm Top nữa.
- Vị trí Left này là của Textbox chưa có vị trí Left của cái cửa sổ Form chứa nó. Nếu form nằm ở giữa thì nó bị lệch về trái, nếu Form ở chế độ Maximize thì nó mới nằm gần thẳng hàng với textbox. Tôi nói gần thẳng thôi vì còn chưa tính tới cái cạnh biên của các form do đó bạn cộng thêm chừng 80 twip nữa chắc vừa.
1 pixel = 15 twips
1 inch = 1440 twips. -
RE: giúp đở về code vba
http2 > 13-08-19, 12:07 PM
ồ em lại quên khấy cái vụ 1pixel = 15 twips với 1 inch = 1440 twips em cám ơn anh ^^