MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    atualizar banco de dados

    Compartilhe

    guma.cojogra
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 04/10/2018

    atualizar banco de dados

    Mensagem  guma.cojogra em 6/12/2018, 11:25

    tem alguma forma de atualizar o banco de dados tipo um reflesh?
    explico, estou usando vba para rodar um comando SQL creat table, ele roda cria a tabela bonitinho, mas eu só consigo visualizar a tabela se fechar o banco de dados e abrir novamente.
    obrigado
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5619
    Registrado : 15/03/2013

    Re: atualizar banco de dados

    Mensagem  ahteixeira em 6/12/2018, 14:12

    Olá Renato,

    Já tento o comando
    Código:
    DoEvents

    Onde não mostra a tabela, num formulário?, pode partilhar o código que está a usar.

    Abraço
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: atualizar banco de dados

    Mensagem  IvanJr. em 6/12/2018, 15:21

    Com a licença do Alvaro, claro, um macete é após criar a tabela
    Código:
    DoCmd.SelectObject acTable, "NomeDaTabelaCriada", True
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 5619
    Registrado : 15/03/2013

    Re: atualizar banco de dados

    Mensagem  ahteixeira em 6/12/2018, 17:36

    Olá Ivan, toda a ajuda é bem-vinda.
    Aguardamos o retorno do colega.

    Abraço

    guma.cojogra
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 04/10/2018

    Re: atualizar banco de dados

    Mensagem  guma.cojogra em 6/12/2018, 19:46

    cara meu código é simples eu uso uma macro que baixei num tutorial da internet, não lembro qual para dar os créditos, para selecionar um arquivo contento minhas instruções sql e utilizo outra pra rodar essas instruções.
    Código:

    Public Sub LeArquivoTexto()
        Dim Arquivo As Integer
        Dim CaminhoArquivo As String
        Dim strSQL As String
        Dim Linha As String
        Dim ContadorLinha As Long
     
        'Configura a leitura do arquivo
        Arquivo = FreeFile
        CaminhoArquivo = SelecionarArquivo() '"C:\temp\arquivo.txt"
     
        'Abre o arquivo para leitura
        Open CaminhoArquivo For Input As Arquivo
        ContadorLinha = 1
        'Lê o conteúdo do arquivo linha a linha
        Do While Not EOF(Arquivo)
            Line Input #Arquivo, Linha
            If Right(Linha, 1) = ";" Then
                strSQL = strSQL & Linha
                CurrentDb.Execute strSQL
                strSQL = ""
            Else
                Linha = Linha & vbCrLf
                strSQL = strSQL & Linha
            End If
        Loop
     
        'Coloca na janela de verificação imediata
        'Debug.Print strSQL
     
        'Fecha o arquivo
        Close Arquivo
     
    End Sub

    'Procedimento para selecionar arquivos
    Function SelecionarArquivo()
        Dim fDlg As FileDialog
        Dim lArquivo As String

        'Chama o objeto passando os parâmetros
        'Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogOpen)
        Set fDlg = Application.FileDialog(1)
        With fDlg
            'Alterar esta propriedade para True permitirá a seleção de vários arquivos
            .AllowMultiSelect = False

            'Determina a forma de visualização dos aruqivos
            .InitialView = msoFileDialogViewDetails

            'Filtro de arquivos, pode ser colocado mais do que um filtro separando com ; por exemplo: "*.xls;*.xlsm"
            .Filters.Add "Texto", "*.sql", 1

            'Determina qual o drive inicial
            .InitialFileName = Application.CurrentProject.Path
        End With

        'Retorna o arquivo selecionado
        If fDlg.Show = -1 Then
            lArquivo = fDlg.SelectedItems(1)
            'MsgBox "O arquivo selecionado está em: " & lArquivo
            SelecionarArquivo = lArquivo
        Else
            MsgBox "Não foi selecionado nenhum arquivo"
        End If
    End Function


    um exemplo de um sql

    Código:

    CREATE TABLE garoto (
      id_garoto INTEGER,
      garoto varchar(20)
      );
     
    INSERT INTO `garoto` (`id_garoto`,`garoto`) VALUES ('1','Davey');
    INSERT INTO `garoto` (`id_garoto`,`garoto`) VALUES ('2','Bobby');
    INSERT INTO `garoto` (`id_garoto`,`garoto`) VALUES ('3','Beaver');
    INSERT INTO `garoto` (`id_garoto`,`garoto`) VALUES ('4','Richie');
    INSERT INTO `garoto` (`id_garoto`,`garoto`) VALUES ('6','Johnny');
    INSERT INTO `garoto` (`id_garoto`,`garoto`) VALUES ('5','Billy');

    CREATE TABLE `brinquedo` (
      `id_brinquedo`INTEGER,
      `brinquedo` varchar(20)
    );

    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('1','banbolê');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('2','planador');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('3','soldados');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('4','gaita');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('5','Figurinhas de baseball');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('6','tinker brinquedo');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('7','etch-a-sketch');
    INSERT INTO `brinquedo` (`id_brinquedo`,`brinquedo`) VALUES ('8','slinky');
    Esse código sql é do livro Use a Cabeça SQL, com algumas alterações para rodar no access.

    quando rodo funciona, mas é como falei tenho que fechar o banco para ver os resultados.
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: atualizar banco de dados

    Mensagem  IvanJr. em 8/12/2018, 00:49

    Viu a minha dica na mensagem nº 3?

    Código:
    Public Sub LeArquivoTexto()
        ...
     
        'Fecha o arquivo
        Close Arquivo

        DoCmd.SelectObject acTable, "brinquedo", True
     
    End Sub

    guma.cojogra
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 04/10/2018

    Re: atualizar banco de dados

    Mensagem  guma.cojogra em 10/12/2018, 22:02

    Ivan desse jeito funciona, mas eu queria algo mais genérico porque nem sempre as tabelas terão o mesmo nome.
    mas se não tiver jeito blz.
    obrigado a todos de qualquer forma.
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 305
    Registrado : 22/11/2016

    Re: atualizar banco de dados

    Mensagem  IvanJr. em 10/12/2018, 22:43

    Na mesma linha de raciocínio, segue uma função que se for chamada - Call fncAbracadabra -, sai movendo o foco pra todas as tabelas do banco que não comecem com USys ou MSys, forçando as que ainda não apareceram a aparecerem.

    Código:
    Public Sub fncAbracadabra()

        Dim tbl As TableDef
        
        For Each tbl In CurrentDb.TableDefs
            If Eval("'" & Left(tbl.Name, 4) & "' not in ('USys','MSys')") Then
                DoCmd.SelectObject acTable, tbl.Name, True
            End If
        Next tbl

    End Sub

    Obs.: perdoe-me o abracadabra, fiquei sem nomes.

      Data/hora atual: 16/12/2018, 11:22