Acessando dados da WEB
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito, através do Paypal.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
De Jefferson Braz
Primeiramente, gostaria de agradecer ao meu amigo, Avelino, a oportunidade de escrever um artigo para o Usando Access. É uma honra e um privilégio, apresentar os meus trabalhos, através deste conceituado site e desta comunidade que é apaixonada pelo Access!
Neste primeiro artigo, vou demonstrar como realizar a integração entre uma aplicação desenvolvida em Microsoft Access e uma base de dados on-line.
Não pretendo me ater ao aspecto técnico da questão e às inúmeras considerações que dizem respeito a arquitetura do projeto, a atualização dos dados, a sincronização, a velocidade ideal de conexão, as tecnologias a serem consideradas, ou até mesmo sobre a criação da base de dados. Desejo, apenas, demonstrar, de forma simples, como realizar o processo de conexão.
Se você tem em mente criar uma conexão vinculada permanente entre o seu front-end e a base de dados, melhor rever seus conceitos. Não é o ideal! A melhor maneira de realizar a conexão é através do ODCB e manipular os dados através do ADO.
A base de dados utilizada no exemplo que apresento é o MySQL, mas a técnica pode ser realizada com qualquer banco de dados com o SQL Server, Firebird, Postgre, dentre outros.
Se você possui um site que disponibiliza o banco de dados MySQL, SQL Server, Firebird, Postgre, já pode se aventurar!
Como vamos utilizar o MySQL, o primeiro passo é abrir uma porta no servidor web, para permitir a conexão externa à base de dados, que está hospedada no servidor.
Isso só é possível, através da criação de DSN ODBC que é feita no Painel de Controle do servidor de hospedagem.
O processo varia entre os diversos tipos de Painel de Controles, utilizados pelos provedores de hospedagem. A Kartoffel utiliza o Painel de Controle Plesk. Vamos utilizá-lo como referência!
Uma vez logado no Painel de Controle e partindo do pré-suposto que já criamos e configuramos nossa base de dados MySQL, vamos criar nossa conexão DSN ODBC.
Em Serviços, clique na opção Configurações ODBC.
Na opção Ferramentas, clique em Adicionar DSN ODBC.
O próximo passo é dar um nome para sua conexão e escolher o Driver para a conexão ODBC. No nosso caso é o MySQL ODBC Driver.
Em Preferências, vamos digitar as informações referentes ao nosso banco de dados, como usuário, senha
e nome do banco de dados.
Como estamos acessando uma base de dados no servidor, para o mesmo, a base de dados está local (localhost). Não faremos alterações na porta, que continua como 3306, em Socket e Option.
Após essas configurações, realizamos o teste de conexão, clicando em Testar Conexão.
Não ocorrendo problemas com a conexão, clicamos em finalizar. Logo, a nossa conexão
está
pronta e nossa porta
aberta no servidor.
Agora, vamos trabalhar o nosso front-end, que realizará a conexão à nossa base de dados na web.
Exceto para o SQL Server (que tem seu driver ODBC instalado juntamente com o Microsoft Office), vamos precisar instalar o drive ODBC correspondente ao banco de dados que vamos nos conectar. Nesse caso, o drive ODBC do MySQL(versão 5.1.10)
No site da Kartoffel, está disponível, uma base de dados MySQL específica para realizarmos nossos testes.
Para realizar o processo de conexão, precisamos ter acesso aos parâmetros de conexão à base de dados on-line. São eles:
Host | dbmy0012.whservidor.com |
Usuário | kartoffel_2 |
Senha | 123456 |
Database | kartoffel_2 |
Tabela | ksd_contatos |
Estrutura da tabela:
Nossa tabela ksd_contatos possui 11(onze) campos básicos.
Vamos criar, agora, um formulário, com base nessa estrutura; lembrando que não haverá vinculação na Fonte de Registros (RecordSource) em nosso formulário.
Uma vez criado o formulário, vamos escrever o código que realiza a conexão com
a nossa fonte de dados.
Não vamos criar na fonte de dados da máquina, uma conexão ODBC. Vamos tratá-la, através do código VBA. Com isso, não será necessário re-criar a fonte de dados na máquina do usuário.
Primeiro, precisamos fazer referência as seguintes bibliotecas: Microsoft ActiveX Data Objects xx.xx Library e a Microsoft ADO Ext. xx.xx for DLL and Security (substituir o xx.xx pelas versões disponíveis na máquina do usuário, ou distribuí-las junto com a sua aplicação)
Veja o módulo VBA do formulário, que realiza a conexão com a fonte de dados Mysql:
Faça o login aqui para ter acesso ao código.
Para os que têm conhecimento de ADO, observem que não abro e fecho a conexão com o banco de dados. Estabeleço uma conexão como se a tabela estivesse vinculada, permitindo assim, a manipulação dos registros pelo Access, sem maiores problemas, dispensando a utilização do método Execute.
Note que, o nosso formulário realizou a conexão à base de dados e carregou seus respectivos dados!
Veja, ainda, que é possível navegar entre os registros, pois foi estabelecida uma conexão com o servidor, que somente será fechada quando o formulário for encerrado. Isso é possível através das instruções adUseClient e adLockPessimistic.
Convém
ressaltar que o procedimento de conexão mencionado é recomendável para poucas conexões
à base de dados.
Se você tem a necessidade de manipular muitos dados ou vários usuários conectados ao banco de dados, é recomendável a utilização da manipulação de registros através do método Execute.
Você pode observar ainda que, foram atribuídos macros aos botões de comandos (nada de códigos) correspondentes às funções básicas do Access, realizando normalmente as operações como: salvar, excluir e navegação entre os registros.
Você deve estar se perguntando: Estou conectado à uma base de dados web. E qual é o desempenho disso?
Em teoria, hoje a velocidade e a estabilidade da conexão não são mais problemas. Dispomos no mercado velocidades para todos os gostos e necessidades.
Embora, não tenha levantado todos os aspectos que devam ser levados em consideração para migração da base de dados em Access, destaco que hoje a Kartoffel atende aproximadamente 09(nove) empresas, utilizando a técnica aqui apresentada. Alguns desses clientes utilizam conexão entre 600 Kbps e 1 MB, e estão satisfeitos com o desempenho. O tempo médio de conexão é de até 05(cinco) segundos, em servidores comuns, nessas condições de velocidade.
Contratando um provedor com um link apenas para a utilização do MySQL, como os disponibilizados por empresas como a UOL, ou a hospedagem da base de dados em um servidor semi-dedicado, o desempenho aumenta consideravelmente.
Para migrar a base de dados para web, é necessário um estudo de caso, onde é recomendado deixar on-line, apenas o que realmente é necessário ficar on-line, pois está passível das falhas na prestação de serviços pelas prestadoras de serviço de telefonia.
Segue abaixo, o banco de dados, em Access, para você realizar os testes de conexão.
Um abraço a todos os amantes do Access e em especial ao nosso amigo Avelino que me proporcionou este privilégio!
Jeferson Braz é programador em MS Access e Visual Basic com mais de 17 anos de experiência.
Diretor de Desenvolvimento da Kartoffel Desenvolvimento de Sistemas Ltda, empresa especializada
em Microsoft Access e CMS Joomla.
Atua no mercado de desenvolvimento de aplicações customizáveis, realizando integração MS Access
à base de dados web e a websites, suporte e manutenção.
102 comentários Santini Filho 23/10/2022 11:05:59 Fiz DB access de emissão de carteirinha. Fiz o relatório, imprime todos os registros digitados. Quero imprimir o que eu quiser selecionar. Como aproveitar o layout que já fiz em um relatório, para imprimir apenas um registro. Esta é a dúvida Aguardo avelino sampaio 21/08/2022 06:46:20 Edson, no final do artigo tem link de ARTIGOS RELACIONADOS. Você chegou a ler esses outros artigos? Tire sua dúvida lá pelo nosso fórum: http://www.redeaccess.com.br Edson 16/08/2022 17:55:49 Oi Avelino. Não vai ter mais material para trabalhar com Access e Mysql? Edson 18/07/2022 14:50:21 Olá Avelino, tenho uma tabela pedidos e nela tem o campo cliente, que é chave extrangeira, mas como fazer que apareca a lista de clientes da tabela clientes, como se faz no access usando assistente de pesquisa ? Obrigado pela atenção Edson Andrade 10/12/2021 14:02:55 Ótima matéria. Funcionou corretamente e me fez não desistir do Access. Só preciser mudar o o parâmetro Driver={MySQL ODBC 5.1 Driver} para Driver={MySQL ODBC 5.2w Driver}, o que baixei e instalei na minha máquina (Windows 7 32bits). Avelino Sampaio 31/10/2021 18:11:03 Misael procure pelo drive "mysql-connector-odbc-5.1.9-win32" e faça uma nova instalação. Sucesso! Misael 31/10/2021 17:49:42 Jefferson com um erro aqui na hora de logar no phpmyadmin é este erro aqui: #1045 Não foi possível se logar no servidor MySQL nao to conseguindo acessar. Everton 01/10/2021 13:35:26 Agradeço Avelino. Vou estudar os códigos, muito obrigado. Avelino Sampaio 01/10/2021 08:53:49 Everton, Copie e cole o endereço abaixo, no seu navegador. Estude as conexões possiveis para o Mysql http://www.connectionstrings.com Sucesso! Everton 01/10/2021 08:36:33 Ivan, Bom dia, desculpa... mas como fez para rodar localmente o código? Avelino Sampaio 01/10/2021 07:45:01 Ivan, Obrigado pelo seu feedback Sucesso! Avelino Sampaio 01/10/2021 07:43:09 Everton, Todos os exemplos já estão fuuncionando. O Mysql esta ativo do meu servidor. O novo ";uid=" vc pode verificar nos exemplos. Entre em contato com o suporte do seu provedor Tecla é peça uma ajuda para configurar seu Mysql. Sucesso! Ivan Coelho 30/09/2021 12:48:59 Avelino, após "quebrar a cabeça", o problema não estava no código VBA, e sim no tabela que eu criei. Alguma propriedade, - que ainda não descobri - foi assinalado para não aceitar edição. Ainda estou investigando. Porém, fiz o teste com outra tabela, e funcionou corretamente. Ou seja, a rotina funciona perfeitamente em rede local. Vale a dica para quem quer testar a rotina acima. Agora só falta testar na web. Um abraço. Everton 28/09/2021 16:52:58 Olá Avelino, primeiramente parabéns pelo excelente trabalho. E Jefferson parabens tb. acompanhei os "posts" e vi que o Jefferson infelizmente removeu o mysql da conta dele... eu tenho na empresa o provedor tecla, porém gostaria de saber se o campo para nome de usuario permanece o mesmo, ou caso contrario como faço para localizar o certo? ";uid=" & usr_id o uid - seria fornecido pelo servidor certo? neste exemplo, UOL, ja no tecla nao localizei onde posso conseguir este dado. Custodio Augusto 20/09/2021 10:47:03 Gostei bastante desta Avelino Sampaio 17/09/2021 03:52:16 Ivan, irei investigar e lhe darei uma posição. Grato! Ivan Coelho 16/09/2021 12:18:29 Olá Avelino. Não aparece erro. Ao tentar editar, faz um bip, e acusa somente na barra de mensagem: "Este Conjunto de registros não pode ser atualizado". Avelino Sampaio 16/09/2021 04:31:55 Ivan, não aceitou acusando algum erro ? Se acusou erro, informe a mensagem. No aguardo Ivan Coelho 15/09/2021 21:06:19 Primeiro quero parabenizar o Avelino e Jeferson, sempre com artigos excelentes! Fiz um teste localmente do código no meu computador e funcionou. Ocorreu que ao tentar a editar os dados no formulário, não aceitou. O que pode ser? Access 2003 Mysql Server 5.1 Avelino Sampaio 21/08/2021 14:00:58 Geraldo, peço desculpas pois o rapaz que criou o tutorial desabilitou o Mysql do provedor dele, por isso a razão de não funcionar. Estarei em breve reabilitando o Mysql, pelo meu provedor. Grato! Geraldo 20/08/2021 11:58:25 Boa Tarde estou tentando acessar o BD de exemplo mas retorna erro de usuário e senha... Paulo Torres 31/07/2021 16:43:51 Agradeço publicamente ao Jeferson, que já me respondeu via e-mail particular sobre a questão que eu fiz acima. Também agradeço ao Avelino, que disponibilizou este espaço e tem ajudado a tantos usuários. O Access é uma ferramenta excelente, já use desde 1998, embora em nível básico, e felizmente temos pessoas com estes dois aqui citados, ajudando aos usuários. Paulo Torres 31/07/2021 13:20:05 Olá Avelino e Jeferson. parabéns pelas dicas e por disponibilizar este espaço na web. Tenho uma dúvida: uso ODBC pra acessar um tabela em firebird, via Access. Funciona, mas... quando precisa fazer um "listbox" puxando muitas infromações dessa tabela do firebird, fica muito, muito lendo. Alguma sugestão de como agilizar esse acesso? é tudo em rede local. Sds. rogerio almeida teixeira 23/07/2021 21:24:30 Ótima ferramenta! Maria José Soares 16/07/2021 15:33:17 OK querido... logo estarei contactando vc... Valeu... JBSR 16/07/2021 14:10:31 No próprio manua do ADO. Contudo há outras formas de conexão com a web. Entre em contato conosco através de telefone, batemos um papo e lhe oriento qual a melhor direção você deve tomar. OK? www.kartoffel.com.br Sds Maria José Soares 16/07/2021 13:36:18 Olá Jeferson... Adorei seu artigo, magnífico... Porém, tenho medo de usar esse procedimento, pois pretendo ter vários usuários acessando o Banco de Dados, e como você citou no artigo, eu queria saber onde tenho acesso à conteúdos a respeito do comando Execute??? Valeu... Adalberto 24/06/2021 09:30:06 Parabens para jeferson e a empresa Kartoffel. Otimas ferramentas e otimo atendimento. Hanthony Carlos 24/06/2021 08:01:48 Esse é meu primeiro comentário neste trabalho feito pelo Jeferson da empresa Kartoffel, pois vi que o mesmo está bem enriquecido pelo conteúdo e também pelos próprios comentários acima. Exceto pelas colocações desse Reginaldo, que são inadequadas para o momento e lugar. Sou programador e utilizo as ferramentas da Kartoffel. Penso que se existem algum problema dele com a Kartoffel aqui não é lugar onde postar esse tipo de comentário. E bem lembrado: Os módulos disponibilizados pela empresa são destinados a programadores que conheçam dessa ferramenta. Reginaldo. Não atrapalhe o trabalho desse pessoal (Usando Access e Kartoffel), pois eles vem contribuindo bastante para o crescimento de pessoas e organizações. Aqui é lugar para o crescimento conjunto e não para postar tolices. Murilo 23/06/2021 08:56:22 Hoje eu tenho um aplicação em meu cliente que utiliza as técnicas demonstradas nesse artigo. Tive até algumas duvidas e mesmo sem contratar um suporte, fui atendido e muito bem atendido pela Kartoffel. Gostaria de ver mais artigos escritos pelo pessoal da Kartoffel, visto que eles dominam muito bem a ferramenta. Jone 22/06/2021 17:29:23 Nem preciso repetir. Minha opinião está aqui: http://comunidade.itlab.com.br/eve/forums/a/tpc/f/273606921/m/9817078963 Marcia 22/06/2021 17:26:48 Não entendi o comentário desse Reginaldo. Alem de não ter proposito nenhum com o tópico, acredito que tenha sido um problema muito particular dele. Eu sou de MA e, já adquiri todos os módulos da kartoffel, e todos funcionam perfeitamente, e fui muito bem atendida pelo suporte. Por telefone, cheguei a conversar com o sr. Jeferson, que foi bem receptivo, e me orientou ao ponto de se conectar remotamente em minha máquina para orientações. Não tenho nada a reclamar da Kartoffel, e acredito que isso seja um evento isolado, como já pude ver em outras comunidades, que falam muito bem da Kartoffel. Lógico que não se tem condições de atender todo mundo, mas nem Jesus agradou a todos. A titulo e curiosidade, no link www.kartoffel.com.br/mysql, tem um exemplo, e funciona de forma esplendidamente, e trata-se justamente sobre o artigo proposto nesse materal. Beijos a todo. JBSR 22/06/2021 17:18:33 O que acontece Reginaldo, é que todos os módulos de NFe, NFSe, CTe, etc, são módulos para desenvolvedores. O que são módulos para desenvolvedores? Aplicações com base já construída para que o usuário não necessite construir a aplicação do zero, e finalizar o processo conforme suas necessidades. Eles não são construídos para funcionar somente instalando, sendo necessário fazer as adaptações que o cliente necessita. Eles devem não ter somente conhecimento de programação, com conhecimento da SEFAZ. Em suma é como se fosse um LEGO. Você vai abrir a caixa e tem que montar. O brinquedo não esta montado. Esses módulos são destinados a programadores. PRO-GRA-MA-DO-RES, que tem no mínimo conhecimento INTERMEDIÁRIO em manipulação VBA, com. Programadores que saibam rastrear um código e ver um recordeset quando o veem. Não a aspirantes a programadores que estão acostumados e copiar e colar códigos, o do tipo faça para mim. Acredito que uma empresa que tenha empresas multinacionais em seu leque como TNC, V&M, Grupo Takraft, ou empresas como FIESP, FIEMG, entre outras, e que ainda tenha em seu leque mais de 350 programadores completamente capacitados, que ficaria até difícil de cita-los aqui, mas que estão lendo o artigo, não deveria dar explicações algumas, mas como me foi solicitado, traços essas linhas. A Kartoffel até hoje não teve reclamações que não pudesse ou não quisesse contorna. O nível de satisfação de nossos clientes está acima dos 85% (como pode ser constatado através do link, http://comunidade.itlab.com.br/eve/forums/a/tpc/f/273606921/m/9817078963). Gostaríamos de atender os 100%, mas os outros 15%, dependem mais deles do que nos, que não conseguem passar de forma clara a sua necessidade, e seja capacitado de resolvemos como nosso suporte orienta. Fatidicamente você ficou nos outros 15%, e preferiu não ter seu problema resolvido. O que nesse caso, é mais problema seu do que nosso. Sds a todos Reginaldo 22/06/2021 13:06:18 No papel é muito belo, quero ver funcionar, Alguns meses atrás comprei desta empresa a NFe, que não funcionava, entrei em contato com este tal de Jefferson Braz e fui muito mal atendido; Outra coisa nem Nota Fiscal a empresa emitiu, fiquei a ver navios. Murilo Rosa 14/06/2021 10:36:49 Um Sistema criado em Access 2007 funciona em 2010? Ou você acha melhor desenvolver diretamente no 2010? Estou pensando em fazer apenas o front em Acces e o BE em Mysql. O que acha? Abçs. Jonas 06/06/2021 11:42:51 Estou iniciando no access e nao sei se estou fazendo certo, segui todos os passos mas pareceque que a senha ta errada, Alguem ja testou? poderia me ajudar? Tadeu 04/06/2021 17:33:44 Gostei muito do material disponibilizado. Parabéns! JBSR 30/04/2021 16:37:27 Boa tarde Nicollas Utilizamos uma seria de ferramentas e técnicas para esse fim. Hoje estamos prestando o treinamento de integração Access/MySQL local e na web. Nesse treinamento todos esses aspectos são abordados. Maiores informações: www.kartoffel.net.br/site/ns/index.php?option=com_content&view=article&id=100&Itemid=116 Sds Nicollas Lamarao 30/04/2021 16:22:07 Boa tarde, Jefferson Braz. Em primeiro lugar, quero lhe parabenizar pelo excelente trabalho desenvolvido no Access. Gostaria de saber quais recursos você utiliza para a criação das interfaces mais amigáveis do aplicativo. Desde já, agradeço a atenção. Um forte abraço. Avelino Sampaio 19/04/2021 06:47:57 Gilberto, entrei em contato com o Jeferson e ele me posicionou que está trocando de provedor e remodelando a página. Em breve voltará a funcionar. Peço desculpas. Gilberto 18/04/2021 10:32:45 Não funciona mais? Aqui deu erro. Rita de Cássia 09/03/2021 07:36:33 Já tenho todos instalados e funcionando, já tenho o Access 2003 funcionando com Mysql na perfeição. Achei muito boa essa matéria e gostaria de testar em meu projeto desta maneira para ver como o banco se comporta com mais de 50Mil registros. Sou grata pela atenção JBSR e Avelino João. Avelino Joao 07/03/2021 08:31:27 Rita aqui tens um tutorial para instalação do Mysql. http://www.webmaster.pt/instalar-mysql-2549.html JBSR 07/03/2021 07:40:40 Para funcionar em localhost faz necessária uma serie de instalações que, no site já está instalado e configurado. Apenas para conexão a base de dados 1) Instalação e configuração do MySQL (dever ser configurado para demais máquinas ver o servidor na rede - não é um processo complicado mas entedioso. Deverá consultar o manual do MySQL) 2) Instalação do Driver ODBC do MySQL 3) Criar uma conexão ODBC para a base de dados. Para conexão da base de dados e Joomla 1) Instalação e configuração do MySQL (dever ser configurado para demais máquinas ver o servidor na rede - não é um processo complicado mas entedioso. Deverá consultar o manual do MySQL) 2) Instalar o Apache para windows 3) Instalar e configurar o PHP no Apache 4) Instalação do Driver ODBC do MySQL 5) Criar uma conexão ODBC para a base de dados. Em suma é isso, o que equivale em média umas 09 horas entre instalação e configuração. Sds Rita de Cássia 06/03/2021 09:24:13 Pessoal, alguem conseguiu fazer isso funcionar em localhost, já tentei de tudo e nada de funcionar. Alguem poderia me dar uma dica? Idenilton Freitas Cardoso. 13/02/2021 15:35:12 Ok, consegui, testei o exemplo 1 e o exemplo 2 ... funcionaram ... Agora vou dar uma olhada e depois repassar... Muito bom... Um abraço... Idenilton Freitas Cardoso 13/02/2021 12:39:06 Olá, agradeço pela grande contribuição que estão fazendo à comunidade Access. Estou com um pequeno erro. Quando clico no botão "Carregar", exibe a seguinte mensagem: erro de compilação: Impossível localizar o projeto ou a biblioteca: Global cn As New ADODB.Connection Agradeço a compreensão, se poderem me dar uma ajuda. Um abraço a todos. Avelino Sampaio 25/01/2021 19:13:24 Leonardo, muito obrigado por este importante feedback. Sucesso! Leonardo 25/01/2021 17:56:55 Bom, enquanto fiquei aguardando a resposta, ficque testanto aqui os drivers de instalação ODBC do MySQL. Consegui resolver o problema, deu certo com o driver DE INSTALAÇÃO "mysql-connector-odbc-5.1.9-win32". Lembrando que o meu é um WINDOWS 7 64Bits e o Office é o 2010 32 Bits. Obrigado pela atenção. Leonardo 25/01/2021 16:41:27 Avelino, parabens pelo Tutorial. Estou com um problema aqui. Instalei tudo e ao rodar dar o seguinte erro bem parecido com o do Jeser on de muda a mensagem: "Erro em tempo de execução -2147467259(80004005): [Microsoft][ODBC Drive Mananger] Nome da Fonte de dados não encontrado e nenhum drive padrão especificado." Eu baixei o drive ODBC do MySQL conforme indicado acima no "http://dev.mysql.com/downloads/connector/odbc/" e o instalei a opção para windows 64bits.. Eu estou usando o Windows 7 Ultimate de 64 bits com office 2010. Jeser 23/01/2021 00:16:40 Grande Avelino. Obrigado por sua atenção. Vou fazer isso. Um forte abraço! Sucesso pra você também! Avelino Sampaio 21/01/2021 04:39:30 Jeser, observe que aconteceu o mesmo erro para o Sergio Viel, em um dos comentários acima. Volte ao site indicado, baixe e instale novamente a versão de 64 bits. Sucesso! Jeser 20/01/2021 18:39:50 Caros Avelino e JBSR. Primeiramente, quero parabenizá-los pelo grande empenho e gesto nobre em ajudar a todos nós. Estou tentando entender esta primeira parte e, quando rodei o aplicativo, deu o seguinte erro: "Erro em tempo de execução -2147467259(80004005) [Microsoft][Gestor de controladores de ODBC] O nome da origem de dados não foi encontrado e não foi especificado nenhum controlador predefinido." Eu baixei o drive ODBC do MySQL conforme indicado acima no "http://dev.mysql.com/downloads/connector/odbc/" e o instalei. Poderia me dar uma ajuda? Eu estou usando o Windows 7 Ultimate de 64 bits. Obrigado e um forte abraço! Jeser Vitor 11/01/2021 11:10:50 Gostei muito do artigo, porém não consegui fazer o processo pois o CPANEL do meu site não é o modelo PLESK. Teria uma dica de como fazer o processo? Abs JBSR 10/11/2020 14:11:43 Prezados Senhores A Kartoffel Sustem Developers está disponibilizando pacote de suporte para atender a demandas de usuários que desejam colocar em pratica os conteudos propostos pela Kartoffel, a fim de aplica-los de forma comercial em suas aplicações. O plano de suporte cobre atendimento via telefone (fixo), e-mail e MSN e é realizado de 2ª as 6ª feiras dentro do horário comercial. O suporte também cobre o fornecimento de códigos parametrizados segundo o padrão de desenvolvimento da Kartoffel, e ajustes nos mesmos para adequação as necessidades dos usuários. Interessandos, contatar através do e-mail websuporte@kartoffel.com.br - Planos especiais para usuários do site www.usandoaccess.com.br e www.kartoffel.com.br Rui Ramos 04/11/2020 23:04:57 No butão conetar alterei o seguinte : strDataBaseName = "fotoelie_casamentos" usr_id = "fotoelie_casam" ' identificacao pass = "meti aqui a minha senha" ' senha (tenho de mexer em mais alguma coisá, porque ao passar o rato sobre as teclas dá um erro ? Rui Ramos 04/11/2020 22:37:41 Olá será que alguém me pode ajudar se for possível por msn. Obrigado Rui Ramos 01/11/2020 17:12:22 O Problema não era criar a base de dados, sim é simples eu sei, o problema era mais em abrir a porta, mas no tutorial do youtube já explica. Obrigado tento dificuldades depois escrevo ok. Wagner Assis 01/11/2020 16:09:42 Não entendi a dificuldade em se criar um banco de dados no MySQL através do Cpanel. No google tem um monte de tutoriais a respeito. Segue o link: http://www.google.com.br/#sclient=psy-ab&hl=pt-BR&source=hp&q=criando+banco+de+dados+cpanel&pbx=1&oq=criando+banco+de+dados+cpanel&aq=f&aqi=&aql=1&gs_sm=e&gs_upl=774l7152l0l7409l29l14l0l11l11l0l485l4640l2-3.6.4l17l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=e6884496bc8ec4a3&biw=1280&bih=587 Faltou foi um pouquinho de vontade, pois como o JBSR mesmo falou, o processo de criação é igual em qualquer painel, exceto por pequenas variações. Vamos quebrar a cabeça um pouqinho galera... JBSR 01/11/2020 16:05:28 Rui, não tem muita diferença entre o painel do Uol, Plesk ou Cpanel. No menu principal do painel tem a opção 'Banco de Dados'. Basta clicar na opção 'Criar banco' e preencher os requisitos solicitados. Sds Rui Ramos 01/11/2020 11:17:36 Encontrei como iniciar neste video: http://www.youtube.com/watch?v=sodbMGrxdcE e agora alguem pode me ajudar como continuar ? Rui Ramos 01/11/2020 10:55:45 Olá, estava acompanhando este fantástico tutorial mas acabei por ficar no início porque o meu painel de controle é o Cpanel. Alguém tem o servidor por Cpanel e fez este tutorial? Obrigado se alguém poder ajudar. Avelino Sampaio 29/10/2020 05:46:31 Cleber, vá na parte 2 do artigo que lá tem um novo arquivo exemplo com uma listbox, que é o mesmo procedimento usado para o preenchimento de uma combobox. Sucesso! Cleber Caetano 25/10/2020 09:33:36 Você não teria algun exemplo para minha aplicação???? Pois sou novo em access, estou estudando VB. JBSR 25/10/2020 08:38:55 Cleber, você tem que carregar as informações à parte em seu combobox através de um recordeset. Cleber Caetano 24/10/2020 09:09:57 Obrigado pela dica Funcionou, mas estou com uma duvida!!!! Apliquei esse codigo no meu projeto, nos formularios que busca informações de uma tabela funciona sem vinculação, mas qnto as combobox como ficaria o codigo para carregar valores de uma tabela sem estar com a tabela vinculada JBSR 20/10/2020 08:43:59 Você instalou a opção errada. O Windows XP ele é de 32 bits. Você deve isntalar a oção x86 de 32 bits. Sergio Viel 19/10/2020 23:55:12 Baixei exemplo e adaptei para o meu servidor com meu banco e minha tabela, testei a conexão no servidor e não tive problema algum. No aplicativo, quando clico para conectar ao servidor ele dá a seguinte mensagem: "Erro em tempo de execução "-2147467259 (80004005)": [Microsoft][ODBC Driver Manager] Lost connection to MySQL server at 'reading initial comunication packet', system error 2.". Pelo que eu entendi ele perdeu a conexão com o servidor, será que baixei o driver ODBC errado ? No link que você indicou para baixar o driver existem duas opções: Windows (x86, 64-bit), MSI Installer Connector-ODBC e Windows (x86, 32-bit), MSI Installer Connector-ODBC. (instalei a 1ªopção) Estou usando Windows XP e o Access 2003. JBSR 17/10/2020 16:02:16 Cleber, o primeiro erro tem a ver com o driver ODBC que não havia sido instalado. Uma vez instalado, não deverá ocorrer mais o erro quanto tentar fazer a conexão. Já o segundo, para fazer a conexão ao banco de dados através de DNS no servidor uol, tem um macete para a conexão. Como o proposito e fazer a conexão via código e não via vinculação de tabelas, não há necessidade de explicar esse detalhe, até porque não é o proposito do respectivo tópico, ter acesso a estrutura da tabela, e sim fazer apenas conexão via ADO. Teste o exemplo novamente e apresentando o erro de conexão, me reporte para avaliação. Sds Cleber Caetano 17/10/2020 15:19:50 Baixei o exemplo mas qndo click em conctar me da uma menssagem de erro!!! "Erro em tempo de execução "-2147467259 (80004005)": [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado." click em Depurar, abre o Visual Basic e seleciona a linha adoDataConn.open strConnect. Intalei o driver ODBC MySQL 5.1. qndo entro no Adm de fonte de dados ODBC vou em fonte de dados de usuarios adiciono seleciono o driver MySQL coloquo os dados do bd Kartoffel_2, qndo testo a conexão me fala "Connection successful". O que pode estar errado? JBSR 07/10/2020 13:42:37 Senhores, o banco de dados foi deletado (acidaentalmente ou propositalmente). Crieu a nova tabela para conexão ao banco de dados, contudo não foi possivel ainda colocar no ar novamente o site que realiza os testes. O exemplo esta funcional agora. Sds a todos Erick Roberto 30/09/2020 17:35:50 Olá, o banco de dados access não está conectando ,nem mesmo o site em joomla. aperece uma mensagem no access que a tabela não existe Jeferson 24/08/2020 16:21:44 Antonio, infelizmente não é possível a conexão de um arquivo no formato .MDB no servidor. A conexão só é possível através de SGDB que suporte conexão por IP, com o MySQL, SQL, etc. O mais próximo que conseguido de um .MDB na web, é a publicação da base de dados no SharePoint e vinculando as listas, mas para isso há um custo mensal com servidores SharePoint. Atenciosamente. Antonio 24/08/2020 15:46:42 Caro Jeferson, Parabéns pelo artigo. Peço ajuda na seguinte dúvida, como ficaria a conexão usando um arquivo .mdb no servidor web? at. Antonio JBSR 02/08/2020 15:45:29 Fabio Como dito nesse mesmo artigo, o meto apresentado não é o mais indicado, porque trabalha-se conectado ao banco de dados. O ideal é trabalhar com recordesets desconectaos, onde é aberta a conexão, realizado o carregamento dos dados e fechada a conexão. Quando o registro é manipulado, é aberta a conexão, realizada a atualização e fechada novamente a conexão. Com isso temos um numero suficiente de conexões. Esse procedimento será abordado em um artigo proximo, onde explanaremos melhor a conexão. Sds Fabio 01/08/2020 20:48:23 Jeferson, parabéns pelo seu trabalho e muito obrigado!! Mas se esse método não é muito indicado para muitos usuários conectados ao mesmo tempo. Como seria esse método EXECUTE para manipular registros? Avelino Sampaio 31/07/2020 07:44:23 João Maria, 1) Desabilite temporariamente a linha de tratamento de erro: On Error GoTo Sai Assim, se o código apresentar algum erro, o access lhe indicará a falha. 2) Sen e Ponto 2 não estão definidos como recordset e sim como variantes. O certo é assim: dim Sen as recordset, Ponto 2 as recordset , Ponto as recordset 3) Aprenda a utilizar "pontos de interrupção" para analisar os seu códigos. Vc pode aprender na minha vídeo-aula sobre filtragens. http://www.usandoaccess.com.br/tutoriais/tuto35.asp?id=1#inicio 4) O uso do Dlookup é muito fácil de ser utilizado. Veja no help do Access. Sucesso! Joao maria 21/07/2020 13:39:34 olhar o codigo.. nao esta abrindo a tela seguinte.. que seria uma tela chamada opera On Error GoTo Sai Dim Sen, Ponto2, Ponto As Recordset If IsNull(User) Or IsEmpty(User) Or User = "" Then MsgBox "Você deve informar o funcionário!!!", vbExclamation, "Ponto Eletronico" User.SetFocus Exit Sub End If If SenhaSis = "" Or IsNull(SenhaSis) Or IsEmpty(SenhaSis) Then Beep SenhaSis.SetFocus Exit Sub End If Set Sen = DBEngine(0)(0).OpenRecordset("Senhas") Set Ponto = DBEngine(0)(0).OpenRecordset("Ponto", dbOpenDynaset) Ponto.Filter = "Data=Date()" Set Ponto2 = Ponto.OpenRecordset With Sen .Index = "PrimaryKey" .Seek "=", User If SenhaSis <> !TE Then MsgBox "Verificar Usuario Logado na Maquina!!!", vbExclamation, "Ponto Eletronico" SenhaSis.SetFocus Exit Sub Else DoCmd.OpenForm "Opera", , , , , acDialog End If End With Sen.Close Set Sen = Nothing Sai: Exit Sub End Sub agora preciso cirar um dlookup no .seek jah tentei e nao consegui.. poderiam me ajudar? Carlos Umberto Maciel Dal Secco 20/07/2020 14:51:41 Estive durante toda a minha vida profissional ligado com as linguagens Cobol, VB, ASP, FoxPro, e outras, mas agora estou apaixonado pelo Access. Sou um analista de sistema aposentado (2002) e resolvi montar qualquer coisa. Como meu filho tem um escritório de advogacia e ainda não estava informatizado, fui para lá servir como secretário e atendente. A experiência durou um ano. Está sendo bacana desenvolver no Access, muito fácil na modelagem de dados, organização das tabelas e consultas, etc. Confesso que busquei muitas dicas de programação na internet, o Avelino, Macorati e alguns foruns, e não seria possível colocar qualidade no desenvolvimento sem estas ajudas. Sempre serei grato. Agora mesmo estou aprendendo com o Jefferson lendo esta postagem e vou começar a direcionar o sistema para isto. É muito bacana esta iniciativa, fico imaginando o mundo de programadores e outros desenvolvedores que se beneficiam, mesmo aqueles que não se manifestam. Por isso resolvi me manifestar de uma forma bem simples, mas imensamente agradecido. Um abraço e até o próximo capítulo. Carlos U M Dal Secco Jeferson 20/07/2020 07:24:08 O que eu mensionei é que o da forma que a conexão é feita não é o ideal. Se observar o metodo que utilizo ele abre a conexão e fica com ela aberta, para manipualação dos dados. Observe que não utilize nenhum comando .add, .delete, .update do recordest. Ele trabalha como se a tabela tivesse sido vinculada. Isso não é o ideal. O ideal é abrir o recordset, carregar os dados, povoar o formulário, fechar o recordeset. Observe que isso não é feito. E criado uma conexão e utilizo o 'LockType' para garantir que eu ficue "dependurado" na conexão. Isso pode ser feito, mas limita o numero de usuarios conectados. Observe que no exemplo, eu utilizo os comandos internos do access, como refresh. Isso só é possivel pois esto efetivamente conectado naquele momento. Se a conexão estiver fechada, esse procedimento não será possivel. Se você utiliza o metodo pelo recordeset para povoar os campos e fechar a conexão, você ganha quase que usuários imimitados (em teoria) em um banco de dados, pois a conexão é feita apenas para passar as informações. Não há uma conexão permanente,com é o caso do meu exemplo. Essa téncnia é padrão em qualquer site, nesse aqui por exemplo. Enquanto eu digita essas informações, estava digitando em um form desacoplado. Quando eu clico no botão comentar ele abra a conexão através de ODBC, abre a tabela, salva o campo comentário, e fecha a conexão. Por isso que varios usuários simultaneos no mesmo form e no mesmo site. Esse processo é o correto e é o que deve ser utilizando quando trabalhamos com conexão a base de dados web. Essa técnica será explorada em artigos futuros, pois esse foi uma apresentação de como poderia ser feito, até porque muito profissional acreditava ser inviavel tal procedimento. Aqui eu provei que é técnicamente é simples. Alem do MySQL estou preparando um artigo sobre o SharePoint (basico), mas que vai permitir aos programadores em acess, utilizar melhor os recursos disponiíveis no mercado sobre Access e base de dados web. Sds Jeferson 20/07/2020 07:13:34 Não precisa não. Abra-se uma única conexão e passa-se os parâmetros necessários. Exemplo MyStr = "SELECT * FROM empregados WHERE nome Like '" & Me.sCliente & "%' order by nome" MyStr2 = "SELECT * FROM empresas order by nome" ‘cn abriu a conexão com o servidor cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=" & MyslqServidor & ";Database=" & MyslqDatabase & ";User=" & MyslqUsuario & "; Password=" & MyslqSenha & ";Option=3;" rs.CursorLocation = adUseClient rs.Open MyStr, cn, adOpenDynamic, adLockOptimistic ‘abre a tabela empregados rs2.Open MyStr2, cn, adOpenDynamic, adLockOptimistic ‘abre a tabela empresas Com os dados carregados em cada recordset eu faço o que for necessário. Lembrando que toda conexão aberta, tem que ser fechada. Sds Cledson 19/07/2020 23:40:27 Ô Jerferson muito legal!! Cara, deixa eu abusar com mais uma pergunta. Eu percebi que para caixa de combinação/caixa de listagem é preciso criar outra conexão? Pergunto isso pq já pensou um formulário com várias caixas de combinações e cada uma delas ter que criar uma conexão? Não sei se é pq minha internet é lenta mas demorou um pouco a resposta. Neste artigo vc mencionou que através do driver ODBC não é o ideal, fiz esse teste também vinculando seu banco mysql através do ODBC e percebi que é aceitável a velocidade, aí eu te pergunto, com este vínculo ODBC com muitos usuários conectados ao mesmo tempo é que fica inviável trabalhar com as tabelas vinculadas? Desculpa aí meu amigo pelas perguntas. Fica com Deus!!! Jeferson 19/07/2020 16:13:36 Cledson, existe muito conteúdo na própria internet, manuais de referência dos proprios fabricantes. Se você observar o manual de conexão via ADO da MS, observará que, embora ela só faça mensão aos seus banco de dados (rsrs), o código é um só. O que muda são os parâmetros, o driver, etc. Mas em suma, a técnica é a mesma para conectar-se a um banco de dados access mesmo. Fico lisonjeado sobre a ideia de se escrever um livro sobre o assunto, até porque existem programadores de pesos como o Julio Baptist que já estão nesse segmento. Vou ficar por aqui mesmo, nesse grande oportunidade que meu amigo Avelino me concedeu, dando um espaço para publicar meus artigos. Estou preparando novos artigos nesse segmento e em breve aparecerão por aqui. Sds Cledson 19/07/2020 15:08:05 Jerferson, muito obrigado mesmo, continue sempre assim!! Você tem algum livro que mostre essa técnica do Access com MySql via ado? Se não tem já pensou na idéia, venderia muito!! Jeferson 19/07/2020 07:29:30 Funciona dessa forma mesmo Cledson. Como estamos trabalhando com uma conexão on-line, devemos passar os parâmetros para o MySQL através do Access, e esperar o retorno dele. Assim, se vamos aplicar um filtro, devemos passar a string da consulta na propria string conexão. Exemplo: Dim MyStr MyStr = "SELECT * FROM empregados WHERE nome Like '" & Me.sCliente & "%' order by nome" cn.Open "Driver={MySQL ODBC 5.1 Driver};Server=" & MyslqServidor & ";Database=" & MyslqDatabase & ";User=" & MyslqUsuario & "; Password=" & MyslqSenha & ";Option=3;" rs.CursorLocation = adUseClient rs.Open cSQL, cn, adOpenDynamic, adLockOptimistic Contudo há observações, pois alguns critérios funcionan diferentes da do Access. Por exemplo: Se vamos filtrar todos os nomes em nossa tabela que começam com ant, observe como é o critério no access que estamos acostumados a utilizar, e como devemos utilizar no MySQL: Access: como 'ant*' MySql: como 'ant%' Observe que no access utilizamos * e no MySQL utilizamos %. Se você não observar esses pequenos detalhes, a sua consulta simplesmente não vai funcionar. No access nós estamos acostumados a ter uma ambiente praticamente todo pronto. Quando utilizamos outro back-end que não um aquivo .MDB ou .ACCDB, temos que atentar para as referências do respectivo banco de dados. Vale dar uma olha nos links abaixo: Manual MySQL: http://dev.mysql.com/doc/refman/4.1/pt/index.html SQL: http://www.w3schools.com/ Ainda que SQL seja SQL em qualquer tipo de banco de dados que vamos utilizar, vale atentar para certas particularidades consultando o manual de referência do respectivo banco de dados. Sds Cledson 18/07/2020 19:47:13 Jeferson, parabáns e muito obrigado pelo artigo. Mas me tire uma dúvida, para criar um filtro, devemos criar uma nova conexão, criando um filtro na consulta para apresentar somente as informações do filtradas? Desculpar mas gostei muito dessa possibilidade de se trabalhar online, mas fiquei preso nessa questão de filtros que é imprescindivel para um projeto. Glicério Júnior (Jungli) 08/07/2020 14:09:29 Ótimo material... Muito obrigado por compartilhar conosco um pouco da sua experiência.... Valdecir 04/07/2020 23:09:01 Parabéns, testei e gostei. MARCIO MELO - RJ 09/06/2020 18:21:34 Deu certo muito show, com a data são teste de cadastros feito no site e sem a data cadastrados no pc local, muito bacana, parece até que no access roda mais rápido que na internet, vou tentar fazer uma base de dados minha e integrar o registro online, adorei o resultado, funciona super bem. Qual seria o melhor método de busca para não da sobrecarga na consulta? pensando em muitos registros temos que nos previnir, utilizar uma id do usuário e chamar pelo DLookup("Campo", "tblusuario", "idusuario = " & CLng(Me!id)) para isso antes teríamos que carregar uma Combox com a id e nome do usuário. São somentes comentários não fiz nenhum teste ainda... mais sei que terei que fazer... Sou mais Brasil :) MARCIO MELO - RJ 09/06/2020 17:53:54 Tive que baixar o Microsoft Data Access Components (MDAC) 2.8 Software Development Kit porque o microsoft ADO 2.8... não estava listado nas minhas referências, mesmo possuindo a DLL no arquivo indicado, veja o link http://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=5067FAF8-0DB4-429A-B502-DE4329C8C850 , caso alguém esteja tendo o mesmo problema. Vanderlei Schneider 25/05/2020 16:08:40 É ótimo ver sistemas profissionais em access, desenvolvidos por pessoas competentes que realizam um trabalho de alto nível. Parabéns Jéferson e Avelino, Deus os abençoe muito. Soli Deo Gloria Márcio Dias 25/05/2020 11:51:16 Parabéns Jeferson Braz pelo artigo e muito obrigado por compartilhar conosco um pouco da sua experiência. Como sempre desejo ao Avelino que Deus abençoe cada vez mais a sua vida também. Jeferson 24/05/2020 09:30:37 Fico muito feliz pelo reconhecimento e que tenham gostado do artigo. O objetivo do mesmo foi mostrar que, o Access é uma ferramenta capaz de atender as mais varidas necessidades das empresas de forma eficiente e profissional. Como o passar do tempo, cada vez mais temos a necessidade de fazer a integração com a web, e muitos acreditam que isso não seja possivel ou seja inviavel com o Access. Esse artigo veio demonstrar que o sonho de uma aplicação que carinhosamente chamo de Web/Desktop, está mais perto das mãos dos programadores em Access do que se imagina. Uma abordagem mais detalhada em um único artigo, como instalação, configuração e gerênciamento do MySQL, os procedimentos que devem ser observados, as regradas, etc., seria exaustivo nesse primeiro momento, e comprometeria o principal objetivo do artigo: mostrar que é possivel a integração access com a web e de uma forma muito clara e simples. Em doses "homeopaticas" publicaremos artigos que saciarão a sede de conhecimento de todos. Para os que ficaram com alguma duvida quanto ao procedimento, criticas e sugestões, poderá abrir um canal de comunicação através do meu site (www.kartoffel.com.br). Sds a todos. Elton John 23/05/2020 09:37:57 Parabéns pelo exemplo... está show... acho o seu deseign muito show... parabéns mesmo... Quem ver esse lemãozinho baixinho não pensa que é tão brilhante... mas a criança sabe o que faz... Meus Parabéns !!! Marcos da Hora - Ba 22/05/2020 10:33:19 Excelente tutorial. Parabéns! Vislumbro uma infinidade de aplicações para o Access com esta integração. Gostaria de saber se é possível utilizar tabelas relacionadas? Também estou ansioso pelo próximo tutorial. Dilson, Altamira-PA 21/05/2020 22:13:16 Excelente!, mais outro grande avanço para a classe. Vamos nessa onda Access galera! Igor 21/05/2020 12:51:14 ótimo tutorial, tive a uns meses atraz que desenvolver uma solução parecida, mas como evitar o timeout da conexão com o mysql? Jossua Marshal 21/05/2020 11:47:13 Parabens ao Avelino e ao Jeferson. Agora vejo com mais clareza uma integração entre uma aplicação desktop colhendo informações através de um site. Isso prova que o Access é uma ferramenta de porte, que pode andar lado a lado com qualquer ferramenta. Estou ancioso pelo próximo artigo da serie. Dinart Azevedo 21/05/2020 09:32:22 Parabéns Jefferson, tutorial sucinto e muito útil ao nosso dia a dia, atualmente trabalhando com Joomla e MySQL tudo ficará mais tranquilo dessa forma. João Batista 21/05/2020 09:26:44 Muito bom o artigo. Só um detalhe: acho que deveria ter sido mostrado como criar o banco de dados mysql. Imagino que quem já sabe criar um banco assim no servidor online, sabe tambem prosseguir no que foi abordado no artigo sem dificuldades, ficando o artigo portanto sem serventia. E quem não sabe vai ficar empacado sem conseguir prosseguir no estudo. Seria bom reverem isso, talvez criar um outro artigo e direcionar os usuários através de um link nesse parar ir primeiro ao outro. Gilberto 20/05/2020 23:10:14 Parabens, a muito estou esperando por isso, irei fazer os testes ainda, mas de qualquer forma muito obrigado por esse maravilhoso tutorial!!! Márcio Melo - RJ 20/05/2020 22:32:30 Nosssaaa! tudo o que eu esperava, tenho um site em Joomla, adorei esse artigo, já estou ancioso pelo próximo, em breve estarei fazendo uns testes online na base de dados do meu site www.iniciantejoomla.com até mesmo para juntar com o registro online que o Avelino disponibiliza aqui. Agradeço o Sr. Jeferson Braz pelo belo trabalho deixado aqui que nos abrange novos horizontes. Sou mais Brasil! |