COMBO PEGAR CODIGO E TORNAR PUBLICO
CmbEmpresa.AddItem Rst!Empr_cod & [Ô] | [Ô] & Rst!Empr_Nom & [Ô][Ô]
1 | empresa1
2 | empresa2
Gostaria de Pegar somente o numero 1 ou 2 ....... de infinita mascara de caracter , tipo em Array
e após isso , preciso declarar que essa empresa ativada é um variavel e publica ...
Alguem
abs ate +
MsgBox Mid([Ô]123456[Ô], 1, 3)
O Resultado será 123
Se você usar isso pode resolver seu problema.
fazer o código no lostfocus do combo sei que os comandos tao errados mais os comentarios estão pela logica que preciso
Dim Empresa as Integer [ô] Declaro a Variavel
empresa = CmbEmpresa.Text [ô]Coloco o Valor do Combo dentro da Variavel empresa
empresa = InStr(empresa, [Ô]|[Ô]) [ô]Pego o primeiro campo antes da barra
empresa = LTrim(empresa) [ô]Comprimo a string pra ajustar a variavel ao tanto de caracter selecioado[ô]
depois
lblativa.caption = empresa [ô] pra eu saber se funcionou
ou
screen.abarrazaul = empresa [ô]pra eu saber qual esta ativa
Como fazer o codigo acima ....
No seu codigo vi que você quer passar para uma váriavel do tipo integer (inteira) texto ja da erro de cara,
Seguindo seu lógica que não consegui fazer, sugero a você colocar um valor fixo para o código da empresa na entrada dos dados na combo e usar conforme abaixo.
Funciona com certeza, mas,,,,,
Private Sub CmbEmpresa_LostFocus()
Dim Empresa As Integer
Empresa = Mid(CmbEmpresa, 1, 6)
MsgBox Format(Empresa, [Ô]0#####[Ô])
End Sub
Private Sub Form_Load()
CmbEmpresa.AddItem [Ô]000001[Ô] & [Ô] | [Ô] & [Ô]Empresa 1[Ô]
CmbEmpresa.AddItem [Ô]000002[Ô] & [Ô] | [Ô] & [Ô]Empresa 2[Ô]
CmbEmpresa.AddItem [Ô]000003[Ô] & [Ô] | [Ô] & [Ô]Empresa 3[Ô]
CmbEmpresa.AddItem [Ô]000004[Ô] & [Ô] | [Ô] & [Ô]Empresa 4[Ô]
CmbEmpresa.AddItem [Ô]000005[Ô] & [Ô] | [Ô] & [Ô]Empresa 5[Ô]
CmbEmpresa.AddItem [Ô]000006[Ô] & [Ô] | [Ô] & [Ô]Empresa 6[Ô]
CmbEmpresa.AddItem [Ô]000007[Ô] & [Ô] | [Ô] & [Ô]Empresa 7[Ô]
End Sub
Vamos esperar amanhecer o dia, quem sabe algum colega não ache uma solução mais adequada.
atualmente vc faz assim
CmbEmpresa.AddItem Rst!Empr_cod & [Ô] | [Ô] & Rst!Empr_Nom & [Ô][Ô]
vc vai fazer a seguinte alteração
CmbEmpresa.AddItem Rst!Empr_Nom
CmbEmpresa.ItemData(CmbEmpresa.NewIndex) = Rst!Empr_cod
repare que no combo ficou apenas o nome das empresas
empresa1
empresa2
porém o código de cada empresa esta armazenado no item data e para vc recurperar seria assim
Private Sub Combo1_Click()
MsgBox CmbEmpresa.ItemData(CmbEmpresa.ListIndex)
End Sub
quando se clicar em um empresa o msgbox irá exibir o código desta empresa
lógico se deseja armazenar este código em uma variavel publica seria assim
[ô]no general do form
Public Empresa As Integer
Private Sub Combo1_Click()
Empresa = CmbEmpresa.ItemData(CmbEmpresa.ListIndex)
End Sub
acho que seria isto sua duvida.
PS: o itemdata do combo só aceita valores numericos
Citação:Private Sub txtPassword_LostFocus()
Usuario = txtUserID.Text
Senha = txtPassword.Text
conectar
Dim Rst As ADODB.Recordset
Set Rst = New ADODB.Recordset
Dim sSelect As String
sSelect = [Ô]EXECUTE SP_CADEMPR_SELECT[Ô]
Rst.Open sSelect, conexao, adOpenForwardOnly, adLockReadOnly
CmbEmpresa.AddItem 0 & [Ô] | [Ô] & [Ô]Consolidadadora[Ô] & [Ô][Ô]
While Not Rst.EOF
CmbEmpresa.AddItem Rst!Empr_cod & [Ô] | [Ô] & Rst!Empr_Nom & [Ô][Ô]
CmbEmpresa.ItemData(CmbEmpresa.NewIndex) = Rst!Empr_cod
Rst.MoveNext
Wend
Desconectar
End Sub
Citação:
Option Explicit
Public Rst As New ADODB.Recordset
Public Rst2 As New ADODB.Recordset
Public conexao As New ADODB.Connection
Global Empresa As Integer
Global Usuario As String
Global Senha As String
Public Function conectar() As Boolean
On Error GoTo erro
Set conexao = New ADODB.Connection
conexao.Open [Ô]DSN=BANCO;[Ô] & _
[Ô]UID=[Ô] & Usuario & [Ô];[Ô] & _
[Ô]PWD=[Ô] & Senha & [Ô];[Ô]
conectar = True
Exit Function
erro:
conectar = False
End Function
Public Sub Desconectar()
On Error Resume Next
Rst.Close
conexao.Close
Set Rst = Nothing
Set conexao = Nothing
End Sub
Citação:Private Sub cmdConnect_Click()
Empresa = CmbEmpresa.ItemData(CmbEmpresa.ListIndex)
Unload Me
End Sub