MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

4 participantes

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    avatar
    MSoccol
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 74
    Registrado : 24/03/2011

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  MSoccol Seg 16 Maio 2011, 1:21 pm

    Bom tarde, meu problema é o seguinte: Criei uma variável do tipo String, e quero atribuir a ela um valor do último registro de uma tabela. como faço isso? to tentando o código abaixo mas ela não tá entendendo direito.

    Private Sub XML_Click()
    Dim nom As String
    nom = DLast("NOME", "CLIENTES")
    DoCmd.OpenForm "CLIENTES", acNormal, , [NOME] = nom, acFormEdit
    End Sub

    Quando crio uma função assim:

    Function NOME() As String
    Nome = DLast("NOME", "CLIENTES")
    End Function

    Me retorna o valor que necessito, só que na hora de rodar o sub, tá entendende de outra forma e abrindo o formulário clientes em outro registro.

    Desde já, Grato
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  criquio Seg 16 Maio 2011, 1:55 pm

    Tente assim:

    Nome = DLookup("NOME", "CLIENTES", "Código=" & Dmax("Código", "Clientes"))


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  JPaulo Ter 17 Maio 2011, 7:00 am

    teste por favor;

    Private Sub XML_Click()
    Dim nom As String
    nom = DLast("NOME", "CLIENTES")
    DoCmd.OpenForm "CLIENTES", acNormal, , "[NOME] ='" & nom & "'", acFormEdit
    End Sub


    Um pitaco:

    Nunca utilize palavras reservadas do Ms Access, como por exemplo "NOME".

    Nunca utilize o mesmo nome da tabela nos seus forms, como por exemplo "CLIENTES", opte por frmCLIENTES, assim o VBA não entra em parafuso.





    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new 102 Códigos VBA Gratuitos...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Instruções SQL como utilizar...
    avatar
    MSoccol
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 74
    Registrado : 24/03/2011

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  MSoccol Ter 17 Maio 2011, 1:49 pm

    Boa tarde senhores.

    Primeiramente obrigado, meu problema foi resolvido. Vendo as duas dicas vi que o problema não era a função pra retornar o nome Dlast . O problema era, sim a forma de escrever a função openform, tal qual o J Paulo escreveu.

    Vcs poderiam me dizer qual é essa regra de usar " & [varialve]& "? É sempre assim se minha variável for um string? qual a regra para utilizar essa escrita?

    Quanto aos pitacos, esse banco que o trabalhando foi feito por mim a uns anos atrás e não sabia esse pouco a mais hoje.

    Quanto a fórmula do criquio, não consegui encaixá-la no meu sistema, acredito que devido ao fato que não tenho um código sequencial nessa na tabela em questão. Esse código sequencial é sempre uma boa, ou ele pode ser omitido em minhas tabelas? Qual a opinião dos programadores mais experientes?

    Já muito grato pela ajuda.

    Grato
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  criquio Ter 17 Maio 2011, 2:47 pm

    " & [varialve]& "

    Quando inserimos um nome ou número para pesquisa, colocamos por exemplo "Código=1". Nesse caso, já estamos passando o valor que queremos pesquisar. Quando usamos um campo ou uma variável, mudamos essa sintaxe para dizer ao Access que não estamos fornecendo o valor exato a ser procurado, mas sim fornecendo o nome do campo ou da variável aonde esse valor está. Lembrando que quando for um dado numérico, usamos como acima, mas quando for uma string, ou seja, campo tipo texto, adicionamos aspas simples e duplas: '" & [varialve]& "'"

    Sempre que possível, é bom fazer uso de numeração sequencial. Elas ajudam em muitos casos de pesquisa.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    MSoccol
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 74
    Registrado : 24/03/2011

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  MSoccol Sab 21 Maio 2011, 10:18 am

    Certo Criquio, vou rever meus projetos para entender melhor essas aspas, elas parecem trabalhar de forma diferente a cada caso, tipo o criteria de um Dsum, ou Dcount e uma wherede um openform.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  criquio Sab 21 Maio 2011, 11:28 am

    As aspas, tanto em vba quanto diretamente na origem dos campos, são usadas mais ou menos assim:

    DLookup("NomeCompleto", "tblClientes", "Código=25")

    No nosso DLookup, que significa pesquisa, separamos os elementos por vírgula, e cada elemento vem dentro de aspas. No exemplo acima, temos três elementos envolvidos na pesquisa. Temos o campo "NomeCompleto", que se encontra na tabela "tblClientes", e será filtrado pelo Código de número 25. Pois bem, nesse exemplo, estamos passando o código diretamente no critério, no caso, o 25. Isso, no entanto, engessa a pesquisa, ou seja, toda vez que precisarmos mudar o código, teremos que alterar diretamente no vba. Para evitar isso, podemos usar um campo no formulário. Nesse caso, termos que informar, no vba, o nome do campo. Vamos supor que o campo se chama txtCódigo. Não podemos simplesmente colocar o nome do campo no lugar do 25, pois o nosso código iria interpretar tudo como sendo o valor a ser pesquisado, e não o campo:

    Errado: DLookup("NomeCompleto", "tblClientes", "Código=Me!txtCódigo")
    Certo: DLookup("NomeCompleto", "tblClientes", "Código=" & Me!txtCódigo)

    É por isso que fazemos esse jogo de aspas, para que o código possa diferenciar entre o valor exato a ser pesquisado ou buscar esse valor em um campo do formulário. Outra questão é a diferença entre valores numéricos e valores de texto. Nesse último caso, acrescentamos as aspas simples, e por conseguinte, precisamos completar o código com aspas simples e duplas ao final:

    DLookup("NomeCompleto", "tblClientes", "Código='" & Me!txtCódigo & "'")

    Temos ainda a diferença de pesquisa por data e hora:

    DLookup("NomeCompleto", "tblClientes", "Data=#" & Me!txtData & "#")

    Como a data e a hora, em critérios de pesquisa, precisam estar entre o símbolo #, e como essa data ou hora se encontra em um campo do formulário, precisamos colocar dessa maneira acima descrita.

    Quando formos usar isso diretamente na origem do campo, mudamos as vírgulas por ponto e vírgula:

    DLookup("NomeCompleto";"tblClientes";"Data=#" & Me!txtData & "#")

    Note que essa sintaxe é similar tanto com DLookup quanto com seus similares DCount, DSum, etc e o jogo de aspas só se verifica no critério ao final do código. O que vem antes, permanece inalterado:

    DLookup("NomeCompleto", "tblClientes", "Código='" & Me!txtCódigo & "'")

    Só o que está em vermelho é que se altera dependendo da condição. O que vem antes pode se alterar dependendo do tipo de pesquisa, e não da condição da pesquisa. Por exemplo:

    1 - DCount("*", "tblClientes")

    2 - DCount("*", "tblClientes", "Data=#" & Me!txtData & "#")

    3 - DCount("NomeCliente", "tblClientes", "Data=#" & Me!txtData & "#")

    No exemplo 1, o "*" indica uma contagem de todos os registros da tabela.
    No exemplo 2, temos um critério. Nesse caso, irá filtrar todos os clientes de uma determinada data.
    No exemplo 3, queremos a quantidade de registros de um determinado cliente em uma mesma data. Isso seria para o caso, por exemplo, de querermos saber quantas vezes o cliente fez compras em um mesmo dia.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    MSoccol
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 74
    Registrado : 24/03/2011

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  MSoccol Sab 21 Maio 2011, 12:45 pm

    Muito esclarecedor Criquio, mas vejo que muita coisa é convenção mesmo, não segue uma idéia lógica. Vou guardar essa sua postagem, para ajudar daqui por diante

    Onde tudo isso está especificado, existe um documento que trate de todos os pormenores de sintaxe?

    avatar
    Dougtha91
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 19/05/2017

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Ajuda JPaulo

    Mensagem  Dougtha91 Sex 14 Jul 2017, 9:42 am

    JPaulo, me ajuda urgente, estou criando uma VBA no ACCESS para ir no Excel, abrir, atualizar o vinculo, depois converte-lo em intervalo e Salvar o arquivo como nome variavel no caso célular A2, porém não estou conseguindo, pode verificar oq esta de errado na String por favor?

    Option Compare Database

    Function OpenExcelFromAccess()
    Dim MyXL As Object


    Set MyXL = CreateObject("Excel.Application")
    With MyXL
    .Application.Visible = True
    .workbooks.Open "H:\Planejamento e Qualidade\PROPOSTAS VENDEDORES (ALDO)02.xlsx"
    MyXL.ActiveWorkbook.refreshall
    MyXL.ActiveWorkbook.unlist
    A = MyXL.ActiveWorkbook.range("a2").Text
    MyXL.ActiveWorkbook.saveAs FileName:="H:\Planejamento e Qualidade\" & A & ".xlsx"
    MyXL.ActiveWorkbook.Close
    Set MyXL = Nothing

    End With
    End Function
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  JPaulo Sex 14 Jul 2017, 10:07 am

    Ola, seja bem vindo ao forum;

    Código:
    Function OpenExcelFromAccess()
    Dim MyXL As Object
    Dim a$

    Set MyXL = CreateObject("Excel.Application")
    With MyXL
    .Application.Visible = True
    .workbooks.Open "D:\Planejamento e Qualidade\PROPOSTAS VENDEDORES (ALDO)02.xlsx"
    MyXL.ActiveWorkbook.refreshall
    a = MyXL.Worksheets("Sheet1").Range("A2").Value
    MyXL.ActiveWorkbook.saveAs FileName:="D:\Planejamento e Qualidade\" & a & ".xlsx"
    MyXL.ActiveWorkbook.Close
    Set MyXL = Nothing
    End With
    End Function


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new 102 Códigos VBA Gratuitos...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Instruções SQL como utilizar...
    avatar
    Dougtha91
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 19/05/2017

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Obrigado

    Mensagem  Dougtha91 Sex 14 Jul 2017, 10:48 am

    JPaulo, muito obrigado funcionou, só mais uma dúvida qual o código para converter o vinculo da tabela em intervalo?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  JPaulo Sex 14 Jul 2017, 11:37 am

    Essa parte de converter o vinculo da tabela em intervalo, não entendi.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new 102 Códigos VBA Gratuitos...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Instruções SQL como utilizar...
    avatar
    Dougtha91
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 19/05/2017

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  Dougtha91 Sex 14 Jul 2017, 11:47 am

    O procedimento da vba esta abrindo um excel e salvando ele, só que esse excel que ele esta abrindo é uma tabela com vinculo de outro excel, quando ele for salvar eu queria que ele quebrasse esse vinculo, transformando o conteúdo em intervalo de célula.
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Re: [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela.

    Mensagem  JPaulo Sex 14 Jul 2017, 11:54 am

    Entendi agora, mas acredite que nunca fiz isso.

    Lamento não poder ajudar nesse trecho.

    Aqui dominamos o Ms Access.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new 102 Códigos VBA Gratuitos...
    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Folder_announce_new Instruções SQL como utilizar...
    avatar
    Dougtha91
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 19/05/2017

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Ajuda JPaulo

    Mensagem  Dougtha91 Sex 14 Jul 2017, 12:25 pm

    A blz, é que iria incluir esse código na continuação da minha string do access.


    Function OpenExcelFromAccess()
    Dim MyXL As Object
    Dim a$

    'On Error GoTo Mensagem
    Set MyXL = CreateObject("Excel.Application")
    With MyXL
    .Application.Visible = True
    .workbooks.Open "H:\Planejamento e Qualidade\PROPOSTAS VENDEDORES (ALDO)02.xlsx"
    MyXL.ActiveWorkbook.refreshall
    MyXL.ActiveWorkbook.UNLIST (ESSA OPÇÃO QUE QUERIA INCLUIR MAIS NAO FUNCIONA)
    a = MyXL.Worksheets("TABELA").Range("A2").Value
    MyXL.ActiveWorkbook.saveAs FileName:="H:\Planejamento e Qualidade\" & a & ".xlsx"
    MyXL.ActiveWorkbook.Close
    Set MyXL = Nothing

    'Mensagem:
    'MsgBox "Opa tente novamente"
    End With
    End Function

    avatar
    Dougtha91
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 81
    Registrado : 19/05/2017

    [RESOLVIDO] Valor de uma variável VBA igual ao valor de uma tabela. Empty Ajuda JPaulo

    Mensagem  Dougtha91 Seg 17 Jul 2017, 10:51 am

    JPaulo,
    Tira mais uma dúvida por favor, criei um formulário de tela inicial, queria que ao abrir o formulário ele identifica o nome do computador do usuário e aparece-se em uma caixa de texto do formulário o resultado da VBA.

    A VBA esta ok, pronta, porém não consigo aplicar ela á caixa de texto, como faço isso?

    Option Compare Database

    'Function que retorna o nome do usuário de rede logado

    Public Function UsuarioRede() As String
    Dim GetUserN
    Dim ObjNetwork
    Set ObjNetwork = CreateObject("WScript.Network")
    GetUserN = ObjNetwork.UserName
    UsuarioRede = GetUserN
    End Function

      Data/hora atual: Dom 27 Nov 2022, 9:13 pm