Bom dia, tenho um sistema onde conecto via ODBC em um banco Firebird e atualizo algumas tabelas no meu banco access, apenas para funcionar fiz o seguinte: crio um recordset com os dados da tabela do firebird e percorro todos os registros desse recordset dando um insert, registro por registro, na minha tabela local. Funciona mais estou certo que existem meios mais produtivos de se fazer isso, podem me ajudar?
2 participantes
Copia de tabelas Firebird Access
mineto- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 5
Registrado : 02/07/2012
- Mensagem nº1
Copia de tabelas Firebird Access
criquio- Moderador Global
- Respeito às regras :
Sexo :
Localização :
Mensagens : 11229
Registrado : 30/12/2009
- Mensagem nº2
Re: Copia de tabelas Firebird Access
Poste o esquema completo que fica mais fácil visualizarmos a forma que está fazendo.
.................................................................................
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. |
mineto- Novato
- Respeito às regras :
Sexo :
Localização :
Mensagens : 5
Registrado : 02/07/2012
- Mensagem nº3
Re: Copia de tabelas Firebird Access
Sub ImportaLista()
Dim cn As New ADODB.Connection
Dim rstLista As New ADODB.Recordset
Dim sql As String
'Conexão com o firebird
cn.ConnectionString = "DSN=CRD;Driver=Firebird/InterBase(r) driver;Dbname=192.6.1.110:C:\CRD\Banco\DBCRD.FDB;UID=SYSDBA;PASSWORD=rootcpd"
cn.Open
'Criando o recordset com os dados que preciso
Set rstLista = cn.Execute("Select ID, NR_PEDIDO_PV, IT_CODIGO_E, QT_PEDIDO_PI, DATA_ENTRADA_PI, GM_CODIGO_OP from despacho WHERE TIPO='MT-BHSE'")
'Percorro todo os registros
While Not rstLista.EOF
'Sql para inserção dos dados na minha tabela local: Despacho_local:
txtSQL = "INSERT INTO DESPACHO_LOCAL (ID,PEDIDO,COD,QTD,ENTREGA) " & _
"SELECT " & Nz(rstLista(0)) & "," & Nz(rstLista(1)) & ",'" & rstLista(2) & "'," & rstLista(3) & ",'" & rstLista(4) & "';"
DoCmd.SetWarnings False
DoCmd.RunSQL txtSQL
DoCmd.SetWarnings True
'Próximo registro
rstLista.MoveNext
Wend
'Fecha o Recordset e conexão
rstLista.Close
cn.Close
End Sub
Dim cn As New ADODB.Connection
Dim rstLista As New ADODB.Recordset
Dim sql As String
'Conexão com o firebird
cn.ConnectionString = "DSN=CRD;Driver=Firebird/InterBase(r) driver;Dbname=192.6.1.110:C:\CRD\Banco\DBCRD.FDB;UID=SYSDBA;PASSWORD=rootcpd"
cn.Open
'Criando o recordset com os dados que preciso
Set rstLista = cn.Execute("Select ID, NR_PEDIDO_PV, IT_CODIGO_E, QT_PEDIDO_PI, DATA_ENTRADA_PI, GM_CODIGO_OP from despacho WHERE TIPO='MT-BHSE'")
'Percorro todo os registros
While Not rstLista.EOF
'Sql para inserção dos dados na minha tabela local: Despacho_local:
txtSQL = "INSERT INTO DESPACHO_LOCAL (ID,PEDIDO,COD,QTD,ENTREGA) " & _
"SELECT " & Nz(rstLista(0)) & "," & Nz(rstLista(1)) & ",'" & rstLista(2) & "'," & rstLista(3) & ",'" & rstLista(4) & "';"
DoCmd.SetWarnings False
DoCmd.RunSQL txtSQL
DoCmd.SetWarnings True
'Próximo registro
rstLista.MoveNext
Wend
'Fecha o Recordset e conexão
rstLista.Close
cn.Close
End Sub