COMBO PEGAR CODIGO E TORNAR PUBLICO

GUTOTEC 18/10/2011 21:02:52
#387014
Olá Pessoal conforme o comando abaixo tenho

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 +
JESUEL.OLIVEIRA 18/10/2011 21:08:48
#387016
Amigo, você usar a função MID do vb para capturar o código se o nº for fixo por exempli

 MsgBox Mid([Ô]123456[Ô], 1, 3)  


O Resultado será 123

Se você usar isso pode resolver seu problema.
GUTOTEC 19/10/2011 00:23:03
#387024
JESUEL OLIVEIRA queria fazer como abaixo
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 ....
JESUEL.OLIVEIRA 19/10/2011 01:04:51
#387027
Amigo, GUTOTEC

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.
MARCELO.TREZE 19/10/2011 06:15:13
#387029
Resposta escolhida
vamos lá o segredo está na hora de preencher o Combo

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

GUTOTEC 20/10/2011 00:29:17
#387140
Obrigado abraços Resolvido

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

Tópico encerrado , respostas não são mais permitidas