MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Variável VBA

    Compartilhe

    evanr
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 22/05/2014

    Variável VBA

    Mensagem  evanr em Qui 22 Maio 2014, 20:10

    Caros Colegas,

    Preciso descobrir qual sintaxe que devo usar para referenciar uma variável no lugar do campo de uma tabela. O código é:

    Dim BD1 As Database
    Dim SCO As Recordset
    Set BD1 = OpenDatabase("c:\Empresa\Banco.accdb")
    Set SCO = BD1.OpenRecordset("SCO", DB_OPEN_TABLE).
    dim NomeDoCampo as integer
    NomeDocampo = "Idade"  'Idade é o nome do campo na tabela SCO
    SCO.MoveFirst
    Do Until SCO.EOF
      If IsNumeric(SCO![NomeDoCampo]) Then 'Nesta linha quero que o access subtitua NomedoCampo por Idade
         MsgBox "É Numérico"
      End If
      SCO.MoveNext
    Loop

    Dá o sequinte erro: Item não encontrado nesta coleção.
    Obvio. Pois NomeDocampo ção é campo da tabela e sim o campo Idade.

    Grato.

    Leandro
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1574
    Registrado : 12/11/2009

    Re: Variável VBA

    Mensagem  Leandro em Qui 22 Maio 2014, 20:22

    Tente assim:

    Dim BD1 As Database
    Dim SCO As Recordset
    Set BD1 = OpenDatabase("c:\Empresa\Banco.accdb")
    Set SCO = BD1.OpenRecordset("SCO", DB_OPEN_TABLE).
    dim NomeDoCampo as String
    NomeDocampo = "Idade" 'Idade é o nome do campo na tabela SCO
    SCO.MoveFirst
    Do Until SCO.EOF
    If IsNumeric(Me("SCO!" & NomeDoCampo)) Then 'Nesta linha quero que o access subtitua NomedoCampo por Idade
    MsgBox "É Numérico"
    End If
    SCO.MoveNext
    Loop

    *Sequência de texto tem que ser em variável tipo String


    .................................................................................




    Algumas soluções em access



    Menu Treeview

    Restringir valores já lançados em caixa de combinação - Texto

    Restringir valores já lançados em caixa de combinação - Valores numéricos



    evanr
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 22/05/2014

    Variável como nome do campo de tabela

    Mensagem  evanr em Qua 28 Maio 2014, 18:57

    Continua dando o erro de "item não encontrado na lista".

    Obrigado.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: Variável VBA

    Mensagem  JPaulo em Qua 28 Maio 2014, 22:53

    Teste primeiro sem variavel, se funfar, aplique para a variavel.


    Dim BD1 As Database
    Dim SCO As Recordset
    Set BD1 = OpenDatabase("c:\Empresa\Banco.accdb")
    Set SCO = BD1.OpenRecordset("Select * From SCO")
    SCO.MoveLast
    SCO.MoveFirst
    Do Until SCO.EOF
    If IsNumeric(SCO!Idade) Then
    MsgBox "É Numérico"
    End If
    SCO.MoveNext
    Loop


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Sex 09 Dez 2016, 11:30