• giúp đở về code vba
  • 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", , , , , acDialogTextbox.Left 

    trên frmA openform em ghi

    Mã PHP:
    Me.Form.Move Me.OpenArgs 
    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 .hic
  • 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 ^^