Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caezar

Access VBA - Insert

Recommended Posts

Boa noite amigos,

 

Eu estou separando alguns registros de uma tabela no Access. Preciso fazer isso via VBA.

O Codigo corre registro por registro e faz varia verficiação. Se o registro passa por todas esta verificações em tão sua linha e copiada em uma outra tabela que possui os mesmo campos.

Tentei da forma abaixo imaginando que o addnew fosse equivalente a um append que eu usava com o delphi, mas tb não deu certo. Existe como colocar uma função que funcione como o Append onde que crio registro, adciono o valor dos campos e salvo?

 

 

Set prg = Form_frmAtualiza.ProgressBar1.Object

Set db = CurrentDb()

 

 

strSql = "SELECT * FROM Unilever_allcases"

Set rs = db.OpenRecordset(strSql)

rs.MoveFirst

 

For intMes = 0 To 12

strSql = "SELECT * FROM [PPR - Abertos (On Time) 1]"

Set rsPPRopen = db.OpenRecordset(strSql)

rsPPRopen.AddNew

For iCont0 = 0 To rsPPRopen.Fields.Count - 1

For iCont = 0 To rs.Fields.Count - 1

If rsPPRopen.Fields(iCont0).Name = rs.Fields(iCont).Name Then

rs.Fields(rsPPRopen.Fields(iCont).Name) = rs.Fields(iCont).Value

Exit For

End If

Next iCont

Next iCont0

 

Next intMes

rs.Update

rsPPRopen.Update

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu algum erro? qual o comportamento do que postou aqui?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Se entendi bem você deseja validar as informações da tabela A e direcioná-las à tabela B.

 

Pois bem, imaginando que as informações estejam todas dentro do mesmo BD, por quê não usar consultas dentro do VBA?!

 

Aqui vai um exemplo similar, porém as "verificações" são feitas a partir de condições - 'if' e 'where':

 

 

Sub modMedia()

'Exemplo de rotina para mover as médias negativas dos alunos
On Error GoTo Err_Media

'Primeiro confirmação da operação
If MsgBox("Deseja exportar as médias dos alunos?", vbQuestion + vbYesNo, strTitle) = vbYes Then

Dim SQL As String
DoCmd.SetWarnings False 'Retirar aviso de execução de query

'Consulta que verifica as médias inferiores a 7 da tbl A e envia para a tbl B: reprovados
SQL = "INSERT INTO itblReprovados ( CodEnt, CodNot, CodMat, MedGer, Semestre ) " & _
"SELECT tblNotas.CodEnt, tblNotas.CodNot, tblNotas.CodMat, " & _
"DSum('CodNot','tblNotas','[CodEnt]=' & [CodEnt])/DCount('CodNot','tblNotas','[CodEnt]=' & [CodEnt]) AS MedGer, " & _
"IIf(Month(Date())<7,'Primeiro','Segundo') AS Semestre " & _
"From tblNotas WHERE (((DSum('CodNot','tblNotas','[CodEnt]=' & [CodEnt])/DCount('CodNot','tblNotas','[CodEnt]=' & [CodEnt]))<7))"
DoCmd.RunSQL SQL

'Finalização do processo
MsgBox "Processo finalizado com sucesso!", vbInformation, strTitle

Else

Exit Sub

End If


Exit_Media:
Exit Sub

Err_Media:
modMsgErr

Resume Exit_Media

End Sub[/Code]

 

 

 

 

 

Sem mais,

 

Julien Sorel

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.