• Cách nào để lấy tên Form đưa vào ListBox ?
  • Cách nào để lấy tên Form đưa vào ListBox ?

    tuanle570 > 03-10-13, 10:53 AM

    Chào ACE !

    Mình có những Form trong file hình đính kèm. Cho mình hỏi làm cách nào để khi mình tạo 1 form mới thì tên form sẽ tự động đưa vào trong Listbox.
    Vd: mình tạo form có tên frmTEST thì trong listbox tự hiện lên tên form là frmTEST
    Cám ơn ACE nhiều nhiều !

    [Hình: 1415808.jpg]
    [Hình: 1415819.jpg]
  • RE: Cách nào để lấy tên Form đưa vào ListBox ?

    paulsteigel > 03-10-13, 11:58 AM

    Bạn cần dùng VBA mới được và dùng đoạn code thế này
    Mã PHP:
    Sub test
    lstObjects
    .RowSource SetRowSource(acForm)
    ' Với báo cáo thì AcReport
    end sub 
    Hàm để lấy thông tin đây
    Mã PHP:
    Function SetRowSource(acObjType As AcObjectType) As String
        Dim iObj 
    As ObjectiStr As StringiContainer As Object
        Set iContainer 
    IIf(acObjType acFormCurrentProject.AllFormsCurrentProject.AllReports)
        For 
    Each iObj In iContainer
            iStr 
    iStr "'" iObj.Name "';"
        
    Next
        
    If iStr "" Then Exit Function
        
    iStr Left(iStrLen(iStr) - 1)
        
    SetRowSource iStr
    End 
    Function 
    Mình đã sửa lại hàm - vì lười copy từ ứng dụng cũ đưa lên, không chịu sửa!
  • RE: Cách nào để lấy tên Form đưa vào ListBox ?

    tuanle570 > 03-10-13, 12:47 PM

    Nó báo lỗi dòng này bạn ơi
    --> If Not ObjectExist(iObj.Name) Then iStr = iStr & "'" & iObj.Name & "';"

    Compile error: Sub or Function not defined
  • RE: Cách nào để lấy tên Form đưa vào ListBox ?

    paulsteigel > 03-10-13, 02:42 PM

    (03-10-13, 12:47 PM)tuanle570 Đã viết: Nó báo lỗi dòng này bạn ơi
    --> If Not ObjectExist(iObj.Name) Then iStr = iStr & "'" & iObj.Name & "';"

    Compile error: Sub or Function not defined
    Bạn thêm vào một form ví dụ, một listbox tên là list5, thêm vào thủ tục như trong phần form_load và sửa hàm ở dưới như đoạn mã ở đây. Mình xin lỗi vì lúc trước quên không sửa lại!
    Mã PHP:
    Private Sub Form_Load()
        
    With List5
            
    .RowSource SetRowSource(acForm)
            .
    RowSourceType "Value list"
        
    End With
    End Sub

    Function SetRowSource(acObjType As AcObjectType) As String
        Dim iObj 
    As ObjectiStr As StringiContainer As Object
        Set iContainer 
    IIf(acObjType acFormCurrentProject.AllFormsCurrentProject.AllReports)
        For 
    Each iObj In iContainer
            iStr 
    iStr "'" iObj.Name "';"
        
    Next
        
    If iStr "" Then Exit Function
        
    iStr Left(iStrLen(iStr) - 1)
        
    SetRowSource iStr
    End 
    Function 
  • RE: Cách nào để lấy tên Form đưa vào ListBox ?

    tuanle570 > 03-10-13, 04:02 PM

    Cám ơn bạn paulsteigel đã hướng dẫn.
    Xin lỗi cho mình xin hỏi thêm một ý nhé: cũng nội dung trên, nhưng làm cách nào không cho hiện tên form mà form đó mình đã để Hidden
  • RE: Cách nào để lấy tên Form đưa vào ListBox ?

    paulsteigel > 03-10-13, 11:42 PM

    Đây bạn có thể sửa lại hàm một chút thành như thế này. Nếu có lỗi, bạn có thể thay Access thành Application nhé!
    Mã PHP:
    Function SetRowSource(acObjType As AcObjectType) As String
        Dim iObj 
    As ObjectiStr As StringiContainer As Object
        Set iContainer 
    IIf(acObjType acFormCurrentProject.AllFormsCurrentProject.AllReports)
        For 
    Each iObj In iContainer
            
    If Not Access.GetHiddenAttribute(acFormiObj.NameThen
                
    'Ban co the su dung doan code sau de lam cho form bi an di
                '
    Access.SetHiddenAttribute acTable"Tenform"True
                iStr 
    iStr "'" iObj.Name "';"
            
    End If
        
    Next
        
    If iStr "" Then Exit Function
        
    iStr Left(iStrLen(iStr) - 1)
        
    SetRowSource iStr
    End 
    Function 
  • RE: Cách nào để lấy tên Form đưa vào ListBox ?

    tuanle570 > 04-10-13, 08:52 AM

    Cám ơn bạn paulsteigel rất rất nhiều nha......
    Nguyên cả chương trình, mình viết toàn macro không nên còn yếu về VBA lắm @.@