Jump to content
Fórum Script Brasil
  • 0

Usando Variavel Como Parte De Linha De Comando


Guest --Brunowck --
 Share

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...