Ir para conteúdo
Fórum Script Brasil
  • 0

Usando Variavel Como Parte De Linha De Comando


Guest --Brunowck --

Pergunta

Guest --Brunowck --

Oi pessoal,

eu escrevi uma função para preencher ComboBox para me facilitar, pois irei utiliza-la várias vezes.

Os parâmetros que eu passo para a função são o nome do formulário mais o nome do combobox (ex. user1.combobox1)

e o caminho onde se encontra o BD onde a informação que irá preencher o combo se encontra.

O problema é quando eu eu nou utilizar o parêmetro do nome ele acusa que a variável não é devida

Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

'define a conexão com o banco de dados
   Set cn = New ADODB.Connection
   cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path
   cn.Open

'define um novo objeto recordset
   Set rs = New ADODB.Recordset

'define a instrução sql
   sql = "select * from senhas"

'gera o recordset para o sql sobre a conexao definida
   rs.Open sql, cn

   rs.MoveFirst                                  ' aponta para o primeiro record
   While Not rs.EOF                              ' executa o looping até o final do recordset
      [b]Nome.Add = rs.Fields("nome").Value         ' adiciona um item ao combobox[/b]
      rs.MoveNext                                ' vai para o próximo record
   Wend

cn.Close                                         ' fecha a conexão
Set cn = Nothing                                 ' limpa a memória
Combo = 0

o problema está na linha em negrito. Eu queria que quando eu clocasse nome , que é o nome do parâmetro ele entendesse user1.combobox1.add = ..... mas não vai. não sei como declarar a variável para poder aproveita-la dessa forma.

Se alguém puder me ajudar agradeço.

abs

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest --Brunowck --

É verdade, essa linha tava errada é como você escreveu mas em vez de add é additem

Nome.AddItem rs.Fields("nome").Value

mas mesmo assim não funciona. O problema é como o VBA está interpretando o parâmetro nome. Quando rodo o algorítimo dá erro nessa linha porque a variável não está declarada de forma correta. Primeiro eu declarei como string, mas não deu depois tentei alguns que são mostrados pelo VBA, mas não estou tendo sucesso.

você saberia a forma correta de declarar o parâmetro?

O que eu quero é o seguinte:

Passo através de nome user1.comobox1

ai na linha "Nome.AddItem rs.Fields("nome").Value" ele na verdade leia "user1.comobox1.AddItem rs.Fields("nome").Value"

entendeu o problema? Se fosse estring era mole, porque era só concatenar as strings, mas é uma linha de comando, então não posso concatenar. tenho que declarar nome de uma maneira que ele intenda o q eu quero...

Abs

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Brunowck --

A minha função está declarada num módulo só pra ela. Ela está como public function.

o código que chama ela é o seguinte:

Private Sub CommandButton7_Click()

Dim Path As String
Dim Nome As ComboBox                    
Dim Nomee As UserForm

Path = "Z:\DB_APROP\senhas.mdb"
Nome = VarNome                                      ' nome da combobox
Nomee = assdigE                                 ' nome do userform onde está a combo box

x = Combo(Nome, Nomee, Path)
   
assdigE.Show                                     ' abre caixa AssDigE

End Sub

eu declarei como você disse, cheguei até a separar a variavel em userfom e combobox (para isso adicionei mais um parametro de entrada na função). Mas tá dando erro na compilação, acho que estou declarando errado. Ele reclama na declaração do userform, mas pode ser um erro alguma linha acima.

Esse código é de um botão. ao clicar no botão o código acima é executado.

você tem idéia como eu declaro pra não ter erro?

Abs

a ta, mas a variavel Nome (na verdade não uma variavel e sim um objeto (declare do mesmo jeito)) tem q ser do tipo ComboBox e não String.

mas eu não entendi, onde ta a declaracao da sua funcao?? todo esse codigo q você passou esta dentro dela??

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Brunowck --

Kuroi,

Tentei mais algumas vezes e consegui, ficou assim:

Private Sub CommandButton7_Click()

Dim Path As String
Dim Nome As ComboBox

Path = "Z:\DB_APROP\senhas.mdb"
Set Nome = assdigE.VarNome


x = Combo(Nome, Path)

   
assdigE.Show                                     ' abre caixa AssDigE

End Sub

Declarei como objeto como você falo. Antes eu tava separando em dois objetos, da maneira que eu consegui, foi declarando tudo junto como acima e tinha mais um detalhe, estava faltando o SET.

Valeu!!! Abs

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...