Página 1 de 1

Acesso a tabelas Access

Enviado: 19 Abr 2022 17:05
por kakamachado
Boa tarde a todos. Preciso de ajuda para a seguinte questão.
Estou desenvolvendo uma aplicação em xHarbour usando arquivos MDB.
Preciso ler os registros de uma tabela e para cada registro lido preciso acessar outra tabela para incluir um registro.
No exemplo disponível na MINIGUI o acesso via ODBC acessa apenas uma tabela, isto é, não mostra como acessar mais de um record set ao mesmo tempo.
Alguma dica?
Obrigado

Acesso a tabelas Access

Enviado: 19 Abr 2022 18:22
por Itamar M. Lins Jr.
Olá!
Posta a linha do exemplo que se refere.
RS é sempre 1por MDB mesmo, não abrimos 2, 3... para cada tabela.

Saudações,
Itamar M. Lins Jr.

Acesso a tabelas Access

Enviado: 19 Abr 2022 18:43
por alxsts
Olá!

Use insert from select. Algo como:

Código: Selecionar todos

"insert into estoque ( Cod_Prod,descricao_prod, numero_serie_prod, fabricante_prod, categoria_prod, qtd_prod, unid_prod, valor_unid_prod, fornecedor_prod, data_compra_prod, num_nf )" & _
"select compra_itens.cod_prod, compra_itens.descricao_prod, compra_itens.numero_serie_prod, compra_itens.fabricante_prod, compra_itens.categoria_prod, compra_itens.qtd_prod, compra_itens.unidade_prod," & _
"compra_itens.valor_unid_prod, compra_itens.fornecedor_prod, compra_itens.data_compra, compra_itens.nf_prod FROM compra_itens WHERE codigo_compra = " & Me.txtCodCompra & ""


Acesso a tabelas Access

Enviado: 20 Abr 2022 10:42
por JoséQuintas
kakamachado escreveu:No exemplo disponível na MINIGUI o acesso via ODBC acessa apenas uma tabela, isto é, não mostra como acessar mais de um record set ao mesmo tempo.
Não conheço o exemplo.
Conexão com banco de dados é apenas uma.
Através dessa conexão acessamos TUDO que está no banco de dados, não apenas uma tabela.

Ler e gravar do mesmo banco de dados, isso pode ser feito de diversas formas, uma delas já foi postada, que é usar um comando SQL e fazer tudo pelo comando.
Também dá pra fazer isso por uma stored procedure, ou ler registros um a um, o que pode ser muito mais demorado.