USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (ActiveX/Controles/DLL)

Título da Dica:  Definir automáticamente o tamanho dos campos de acordo com a Tabela
Postada em 21/8/2006 por Daniel            
Para funcionar precisa
1) que o nome dos campos da base sejam iguais aos campos do Form
2) campos especiais exeplo como label devem começar com ET_, campo data devem começar por DT_ e assim por diante basta configurar nessa linha os inicios dos campos a serem desprezados:  If InStr(1, " RT_ ET_ GD_ BT_ DT_ MN_ ", " " & T_Inic & " ") = 0 Then

no form_load colocar a chamada da função passando o nome da recordset e do formulário exemplo:
G_Def_Tamanho_Campos (Rc_Cli), Frm_Cliente

segue a função:

Public Function G_Def_Tamanho_Campos(Tp_Recordset As Object, TNomeObj As Object) As Boolean
'Define o tamanho maximo dos campos a serem preenchidos na tela
Dim T_Ini As String, V_Tam As Integer, T_Tipo As String, T_Formato As String
Dim T_Nome As String, T_Inic As String, T_Default As String, t_indice As String
Dim T_Decimal As Integer, T_mask As String
G_Def_Tamanho_Campos = 0
On Error Resume Next
    Set G_Formul = TNomeObj
    For Each G_Control In G_Formul.Controls
        T_Inic = UCase(Left(G_Control.Name, 3))
        T_Ini = TypeName(G_Control)
        If InStr(1, " RT_ ET_ GD_ BT_ DT_ MN_ ", " " & T_Inic & " ") = 0 Then
            If InStr(1, " TextBox MaskEdBox Mask_Edit DBCombo DBList ComboBox ListBox SSOption OptionButton CheckBox SSCheck BDComb_Box MaskEdBox_Data MaskEdBox_DH MaskEdBox_Hora MaskEdBox_Num MaskEdBox_Int ", " " & T_Ini & " ") > 0 Then  'Se for um objeto valido
                
                T_Nome = G_Control.Name
                T_Default = ""
                T_Default = Tp_Recordset(T_Nome).DefaultValue
                
                If InStr(1, " MaskEdBox_Data MaskEdBox_DH MaskEdBox_Hora MaskEdBox_Num MaskEdBox_Int MaskEdBox Mask_Edit ", " " & T_Ini & " ") > 0 Then  'Se for um objeto valido
                    If G_Control.Mask <> "" Then GoTo G_Def_Tamanho_Campos_continua
                End If
                If InStr(1, " SSOption OptionButton ", " " & T_Ini & " ") > 0 Then t_indice = G_Control.Index
                
                Err = 0
                T_Tipo = Tp_Recordset(T_Nome).Type
                V_Tam = 0
    'dbBigInt   dbBinary    dbBoolean   dbByte  dbChar  dbCurrency  dbDate  dbDecimal   dbDouble    dbFloat dbGUID  dbInteger   dbLong  dbLongBinary    dbMemo  dbNumeric   dbSingle    dbText  dbTime  dbTimeStamp dbVarBinary
                Select Case T_Tipo
                    Case dbByte
                        V_Tam = 3
                    Case dbBoolean
                        V_Tam = 2
                    Case dbBigInt, dbBinary, dbCurrency, dbDecimal, dbDouble, dbInteger, dbLong, dbLongBinary, dbNumeric, dbSingle
                        V_Tam = 10
                    Case dbDate, dbTime, dbTimeStamp
                        V_Tam = 10
                    Case dbText, dbChar
                        V_Tam = Tp_Recordset(G_Control.Name).Size
                    Case dbMemo
                        V_Tam = 65535
                    Case Else        'dbFloat    dbGUID  dbVarBinary
                        V_Tam = Tp_Recordset(T_Nome).Size
                End Select
                If Err = 0 Then
                    Select Case T_Ini
                        Case "SSOption", "OptionButton"
                            TNomeObj(T_Nome)(t_indice).Tag = T_Default
                            GoTo G_Def_Tamanho_Campos_continua2
                        Case "Mask_Edit"
                        Case "MaskEdBox", "MaskEdBox_Data", "MaskEdBox_DH", "MaskEdBox_Hora", "MaskEdBox_Num", "MaskEdBox_Int"
                            T_mask = ""
                            T_Formato = ""
                            T_Decimal = 0
                            T_mask = Tp_Recordset(T_Nome).Properties("InputMask").Value
                            T_Decimal = Tp_Recordset(T_Nome).Properties("DecimalPlaces").Value
                            T_Formato = Tp_Recordset(T_Nome).Properties("Format").Value 'Format
                            G_Formata_Mask T_mask, T_Formato, T_Decimal, (T_Tipo), TNomeObj(T_Nome)
                            TNomeObj(T_Nome).Format = T_Formato
                            If TNomeObj(T_Nome).Mask = "" And TNomeObj(T_Nome).Format = "" Then TNomeObj(T_Nome).MaxLength = V_Tam
                        Case "BDComb_Box"
                        Case Else
                            TNomeObj(T_Nome).MaxLength = V_Tam
                    End Select
                End If
        
G_Def_Tamanho_Campos_continua:
                TNomeObj(T_Nome).Tag = T_Default
                TNomeObj(T_Nome).Tag = G_REMOVE_ESP(TNomeObj(T_Nome).Tag)
G_Def_Tamanho_Campos_continua2:
                TNomeObj(T_Nome).Texto_Dica = Tp_Recordset(T_Nome).Properties("Description").Value 'user controls
                TNomeObj(T_Nome).ToolTipText = Tp_Recordset(T_Nome).Properties("Description").Value 'Description
            End If
        End If
    Next G_Control
    
G_Def_Tamanho_Campos = -1
End Function
 


CyberWEB Network Ltda.    © Copyright 2000-2020   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página