CHAVE PRIMARIA E CHAVE ESTRANGEIRA
Amigos, tenho um sistema que desenvolvi no Access2000. Gostaria de saber como faço para, após gravar os dados em uma tabela capturar o ID do registro gravado (chave primário com campo autonumérico) para poder graver este número como chave estrangeira em outra tabela. Estava utilizando o recurrso de capturar o último registro gravado, mas não tá dando muito certo.
Grato
Grato
logo após a inserção, faça uma consulta assim:
Esse foi com ADO, mas com DAO também funciona.
cnx.Execute [Ô]insert into suaTabela ...[Ô]
Set rs = cnx.Execute([Ô]select @@identity from suaTabela[Ô])
MsgBox rs(0)
Esse foi com ADO, mas com DAO também funciona.
Preciso declarar a variável cnx. Esta variável seria de que tipo. Tentei declarar como sendo do tipo connection, mas não funcionou. A concexão que faço é com DAO. Poderia me dar um exemplo mais completo? Grato.
Após gravar todas as informações e antes de fechar o rs faça:
Exemplo:
lblCódigo= rs!id
Exemplo:
lblCódigo= rs!id
Eu tive que ser rápido no post ontem e esqueci de perguntar como vc tá adicionando na tabela. Bom vejo já sei vc tá usando DAO.
Se estiver usando um objeto Recordset pra inserir os dados, faça como o VELDRAME postou. Se não, faça:
Se estiver usando um objeto Recordset pra inserir os dados, faça como o VELDRAME postou. Se não, faça:
Set outroObjetoRecordset = seuObjetoDatabase.OpenRecordset([Ô]select @@identity from suaTabela[Ô],dbOpenSnapshot)
Amigos, ainda não consegui capturar o Id da Tabela1 para gravar na tabela2 , segue abaixo a estrutura que estou usando, será que vocês poderiam me ajudar? Agradeço
Dim db As DAO.Database
Dim RS As DAO.Recordset
Set db = DBEngine.Workspaces(0).Databases(0)
Set RS = db.OpenRecordset([Ô]TabelaUm[Ô])
RS.AddNew
RS!Campo1 = txtNome
[ô]Outros campos......
RS.Update
[ô]Feito o Update, preciso capturar o Id desta tabela para salvar na tabela dois (Chave estrangeira). De maneira que eu possa gravar
Set RS = db.OpenRecordset([Ô]TabelaDois[Ô])
RS.AddNew
RS!CodTabelaDois = IdTabela1
RS.Update
RS.Close
Set RS=Nothing
Set db=nothing
Dim db As DAO.Database
Dim RS As DAO.Recordset
Set db = DBEngine.Workspaces(0).Databases(0)
Set RS = db.OpenRecordset([Ô]TabelaUm[Ô])
RS.AddNew
RS!Campo1 = txtNome
[ô]Outros campos......
RS.Update
[ô]Feito o Update, preciso capturar o Id desta tabela para salvar na tabela dois (Chave estrangeira). De maneira que eu possa gravar
Set RS = db.OpenRecordset([Ô]TabelaDois[Ô])
RS.AddNew
RS!CodTabelaDois = IdTabela1
RS.Update
RS.Close
Set RS=Nothing
Set db=nothing
Crie uma variável com escopo acessÃvel ou coloque a informação em algum controle propÃcio. Exemplo com variável:
Dim db As DAO.Database
Dim RS As DAO.Recordset
Set db = DBEngine.Workspaces(0).Databases(0)
Set RS = db.OpenRecordset([Ô]TabelaUm[Ô])
RS.AddNew
RS!Campo1 = txtNome
[ô]Outros campos......
[txt-color=#e80000]nIdTabelaCriado = rs([Ô]campoAutoNum[Ô])[/txt-color]
RS.Update
[ô]Feito o Update, preciso capturar o Id desta tabela para salvar na tabela dois (Chave estrangeira). De maneira que eu possa gravar
Set RS = db.OpenRecordset([Ô]TabelaDois[Ô])
RS.AddNew
[txt-color=#e80000]RS!CodTabelaDois = nIdTabelaCriado[/txt-color]
RS.Update
RS.Close
Set RS=Nothing
Set db=nothing
Tópico encerrado , respostas não são mais permitidas