INSERT BD ACCESS

FAGNER 22/01/2013 15:02:57
#417900
Boa tarde amigos,

Sou novato aqui e tenho a seguinte duvida.

Tenho um formulário principal com nome RecPag e dentro dele um subform com nome Apropriação e fiz um formulário desvinculado por nome de despesas padrão onde ele abre em janela pop up eu informo os dados e clico num botão para inserir no formulário compras e no subform duplicatas via código e para que a chave estrangeira fosse inserida também no subform eu fiz uma pesquisa do ultimo registro + 1 porem quando cancela ou exclui um registro ele perde a sequencia, alguém podo me ajudar?

Vejam o código:
Private Sub Comando15_Click()

[ô] Define variáveis
Dim vEmpresa As String
Dim vForn As String
Dim vNDoc As String
Dim vEsp As String
Dim vValor As Currency
Dim vComp As String
Dim vHistorico As String
Dim vCustos As String
Dim vUni As String
Dim vMov As String
Dim vResultado As String


[ô] Verifica valores se foram preenchidos
If IsNull(Me.vNDoc.Value) Then
MsgBox ([Ô]Preencha o campo NDoc![Ô])
Me.vNDoc.SetFocus
Me.vNDoc.BackColor = 255

ElseIf IsNull(Me.vValor.Value) Then
MsgBox ([Ô]Preencha o campo Valor![Ô])
Me.vValor.SetFocus
Me.vValor.BackColor = 255

ElseIf IsNull(Me.vComp.Value) Then
MsgBox ([Ô]Preencha o campo Competencia![Ô])
Me.vComp.SetFocus
Me.vComp.BackColor = 255

Else

[ô] Define vlr Variável
vEmpresa = Me.vEmpresa
vForn = Me.vForn
vNDoc = Me.vNDoc
vEsp = Me.vEsp
vValor = Me.vValor
vComp = Me.vComp
vHistorico = [Ô]Valor ref. [Ô] & vDescrição
vCustos = Me.vCustos
vUni = Me.vUnidade
vMov = Me.vMov
vResultado = MsgBox([Ô]Deseja Inserir Despesa Diária?[Ô], vbExclamation + vbOKCancel, [Ô]Confirmação[Ô])



[ô] Confirmação para Inserir ou cancelar
If vResultado = vbOK Then

CurrentDb.Execute ([Ô]INSERT INTO RecPag (RecPag,IdEmpresa,IdForn,NDoc,IdEsp,Prazo,Parcelas,Valor,Historico) [Ô] & _
[Ô]VALUES (2,[ô][Ô] & vEmpresa & [Ô][ô],[ô][Ô] & vForn & [Ô][ô],[ô][Ô] & vNDoc & [Ô][ô],[ô][Ô] & vEsp & [Ô][ô],0,1,[ô][Ô] & vValor & [Ô][ô],[ô][Ô] & vHistorico & [Ô][ô])[Ô])


CurrentDb.Execute ([Ô]INSERT INTO Apropriacao (Movimento,IdCentroCustos,VrAp,IdUnidade,Competencia) [Ô] & _
[Ô]VALUES ([ô][Ô] & vMov & [Ô][ô],[ô][Ô] & vCustos & [Ô][ô],[ô][Ô] & vValor & [Ô][ô],[ô][Ô] & vUni & [Ô][ô],[ô][Ô] & vComp & [Ô][ô])[Ô])


MsgBox ([Ô]Dados Inseridos com sucesso![Ô])
DoCmd.Close


Else

DoCmd.Close

End If
End If

End Sub


Private Sub Form_Open(Cancel As Integer)
Me.InsideWidth = 8000
Me.InsideHeight = 4200
End Sub
FILMAN 22/01/2013 22:27:33
#417918
Verifique os campos numéricos e texto

Os campos numéricos não pode ser passado com apostrofo ou seja aspas simples
Tipo o campo IdEmpresa,IdForn,IdEsp esses campos descrevem como nomes de numérico se for na sua equivalência dentro do VALUES
não precisa colocar com aspas simples
FAGNER 23/01/2013 07:58:01
#417924
Bom dia FILMAN, obrigado pelo retorno.

Verifiquei e eles são campos numéricos, eles inserem na tabela somente os Ids. Na verdade não estou tendo problema em fazer a inserção em si, eu não estou encontrando uma forma de fazer com que a numeração automático do formulário principal (RecPag) seja inserida no subformulário (Apropriação), pois quando exclui ou simulei um lançamento e dei [Ô]Esc[Ô] duas vezes gerou um buraco na numeração e por exemplo, no formulário principal ele inseri normalmente o próximo número da sequencia, tipo tava 2331 ele inseriu 2332 e como exclui o ultimo registro era 2000 ele incrementou +1 e inseriu 2001 no subform. Existe alguma forma de ajustar isso?
FILMAN 23/01/2013 13:14:59
#417939
Qual função você esta utilizando para gerar o código no SubForm?

você tem que utilizar o código que esta usando no principal no SubForm!!
FAGNER 23/01/2013 15:21:42
#417945
Ok. Pode me dar um exemplo?
Faça seu login para responder