AJUDA COM LOGICA
Olá! Fiz uma rotina de gravação aqui, e estou com um pekeno problema: Quando o vb xama ela, ela começa a executar da metade, de uma linha que diz next i..e dá o erro dissendo que não tem um "for" pra esse next. O for, eh claro, tá mais acima. Podem me ajudar?
Private Sub grava()
Dim rsnrseq As New ADODB.Recordset
Dim nrseq As Integer
Dim rsTN As New ADODB.Recordset
Dim rsTam As New ADODB.Recordset
Dim rsErro As New ADODB.Recordset
On Error GoTo deupau
'Gera nrseq:
rsnrseq.Open "select * from notas order by nfnrseq", bd, adOpenDynamic
If Not rsnrseq.EOF Then
rsnrseq.MoveLast
nrseq = rsnrseq!nfnrseq + 1
Else
nrseq = 1
End If
rsnrseq.Close
'zerar variaveis do calc. de ICM
Dim K As Integer
For K = 1 To 9
baseIcm(K) = 0
baseIcmRed(K) = 0
alqIcm(K) = 0
alqIcmRed(K) = 0
Next K
isentasIcm = 0
OutrasIcm = 0
StIcm = 0
freteProd = 0
descProd = 0
acresProd = 0
percDesc = 0
aliqProd = 0
totIcm = 0
tmpUfCli = ""
tmpUfEmp = ""
Dim rsNat As New ADODB.Recordset
Dim rsConf As New ADODB.Recordset
Dim rsNF As New ADODB.Recordset
Dim rsCli As New ADODB.Recordset
Dim rsEmp As New ADODB.Recordset
rsNF.CursorType = adOpenKeyset
rsNF.LockType = adLockOptimistic
Dim tmpIt As Integer
Dim filtroNotas As String
filtroNotas = " WHERE nfano = " & Year(dtEmis.Value) & _
" AND nfempresa = " & lblEmp.Text & _
" AND nfcliente = " & lblCli.Text & _
" AND nfnrnota = " & Txtnrnota.Text & _
" AND nfdataemis = '" & dtEmis.Value & "'"
rsConf.Open "configuracao", bd, adOpenDynamic
rsNF.Open "SELECT * from NOTAS " & _
filtroNotas, bd, , adCmdTable
If rsNF.EOF Then
rsNF.AddNew
Else
MsgBox "Nota já lançada", , "Aviso"
Exit Sub
End If
rsNF!nfano = Year(dtEmis.Value)
rsNF!nfempresa = lblEmp.Text
rsNF!nfcliente = lblCli.Text
rsNF!nfnrnota = Txtnrnota.Text
rsNF!nfnrseq = nrseq
rsNF!nfdataemis = dtEmis.Value
rsNF.Update
rsNF.Close
Dim i As Integer
For i = 1 To ubGrid.Rows
ubGrid.Col = 1
ubGrid.Row = i '
If Not ubGrid.Text = Empty Then
Dim prod As Long, prcProd As Currency, totProd As Currency
Dim qtdProd As Currency, tabPrc As Integer
Dim tam As String
ubGrid.Col = 1
prod = ubGrid.Text
ubGrid.Col = 3
If Len(ubGrid.Text) <> 0 Then
tam = ubGrid.Text
Else
tam = Empty
End If
'End If
ubGrid.Col = 4
If Len(ubGrid.Text) <> 0 Then
qtdProd = PegaNumerosMoney(ubGrid.Text)
End If
ubGrid.Col = 5
tabPrc = Val(ubGrid.Text)
ubGrid.Col = 6
If Len(ubGrid.Text) = 0 Then
prcProd = 0
Else
prcProd = ubGrid.Text
End If
ubGrid.Col = 7
If Len(ubGrid.Text) = 0 Then
totProd = 0
Else
totProd = ubGrid.Text
End If
If Len(tam) <> 0 Then
rsTN.LockType = adLockOptimistic
rsTN.Open "Select * from tamanhosnotas", bd, adOpenDynamic
rsTN.AddNew
rsTN!TNNrSeq = nrseq
rsTN!TNProduto = prod
rsTam.Open "Select * from tamprods where tamanho = '" & tam & "'", bd, adOpenDynamic
rsTN!TNTamanho = rsTam!codigo
rsTam.Close
rsTN!tntabpreco = tabPrc
rsTN!TNQuantidade = qtdProd
rsTN.Update
rsTN.Close
End If
rsCli.Open "select uf from clientes inner join cidades on clientes.cidade = cidades.codigo where clientes.codigo = " & lblCli.Text, bd, adOpenDynamic
rsEmp.Open "select uf from empresas inner join cidades on empresas.cod_cidade = cidades.codigo where empresas.codigo = " & lblEmp.Text, bd, adOpenDynamic
CalculaIcm prod, prcProd, totProd, txtDesc.Text, txtAcres.Text, txttotbruto.Text, txtFrete.Text, rsCli!UF, rsEmp!UF, lblNat.Text
rsCli.Close
rsEmp.Close
ubGrid.Col = 1
'itens das notas
rsNF.Open "select * from itensnotas " & _
" WHERE itnrseq = " & nrseq & _
" AND itproduto = '" & ubGrid.Text & "' order by itItem", bd, , adCmdTable
If rsNF.EOF Then
rsNF.AddNew
tmpIt = 0
Else
rsNF.MoveLast
tmpIt = rsNF!ititem
rsNF.AddNew
End If
rsNF!itnrseq = nrseq
rsNF!itproduto = ubGrid.Text
rsNF!ititem = tmpIt + 1
rsNF!ITSit = "N"
rsNF!itvlrtot = totProd
If tabPrc > 0 Then
rsNF!ittabela = tabPrc
End If
'rsnf!ITComis =0 (alterar depois)
rsNF!itvlruni = prcProd
rsNF!itqtdliq = qtdProd
rsNF!ITFreteVlr = freteProd
rsNF!ITDescVlr = descProd
rsNF!ITAcreVlr = acresProd
rsNF!itAliqIcm = aliqProd
rsNF.Update
rsNF.Close
retoma: 'retoma após tratar o erro no rsNF.update
If rsNF.State = adStateOpen Then
rsNF.CancelUpdate
rsNF.Close
End If
Next i
'notas
GravaIcm
GravaDesdobr
Dim rsPlaca As New ADODB.Recordset
rsNF.Open "SELECT * from NOTAS " & _
filtroNotas, bd, , adCmdTable
rsNF!nfcodvend = lblVend.Text
rsNF!NFNatOp = lblNat.Text
rsNF!nfsituacao = "N"
rsNF!nftipo = "S"
rsNat.Open "select * from naturezaoper nat where codigo = " & lblNat.Text, bd, adOpenDynamic
If tmpUfCli = tmpUfEmp Then
If Not IsNull(rsNat!codfiscal1) Then
rsNF!NFCodFisc = rsNat!codfiscal1
End If
Else
If Not IsNull(rsNat!codfiscal2) Then
rsNF!NFCodFisc = rsNat!codfiscal2
End If
End If
rsNF!nfdescvlr = txtDesc.Text
rsNF!nfdtsaida = dtSaida.Value
rsNF!nfhorasaida = txtHora.Text
rsNF!nffrete = txtFrete.Text
rsNF!nfespecie = "NF"
'rsNF!NFSerie = rsConf!serie_ent
rsNF!NFObsLiv = rsNat!obs
rsNF!NFVlrContab = txtLiq.Text
rsNF!NFVlrProd = txttotbruto.Text
rsNat.Close
'NFIcmFrete Money
'NFVlrComis Money
'NFVlrComisG Money
If txtIpi.Text > 0 Then
rsNF!NFBaseIPI = txtLiq.Text
Else
rsNF!NFBaseIPI = 0
End If
rsNF!nfvlripi = txtIpi.Text
rsNF!NFCodVendS = lblVend.Text
rsNF!nfvlracr = txtAcres.Text
If Len(txtMoeda.Text) > 0 Then
rsNF!nfindice1 = txtMoeda.Text
rsNF!nfindice2 = txtMoeda.Text
rsNF!nfindice3 = txtMoeda.Text
rsNF!nfindice4 = txtMoeda.Text
rsNF!nfindice5 = txtMoeda.Text
rsNF!nfindice6 = txtMoeda.Text
rsNF!nfindice7 = txtMoeda.Text
rsNF!nfindice8 = txtMoeda.Text
rsNF!nfindice9 = txtMoeda.Text
rsNF!nfindice10 = txtMoeda.Text
End If
rsNF!nfisicm = isentasIcm
rsNF!nfoutrasicm = OutrasIcm
rsNF!nfvlricm = totIcm
rsNF!nfvlrst = StIcm
rsNF!NFDtEmisOrig = dtEmis.Value
Dim rsNotaFiscal As New ADODB.Recordset
rsNotaFiscal.Open "select * from notasfiscais where empresa1 = " & lblEmp.Text, bd, , adCmdTable
If rsNotaFiscal.EOF Then
rsNotaFiscal.AddNew
rsNotaFiscal!empresa1 = lblEmp.Text
rsNotaFiscal!not_fisc1 = Txtnrnota.Text
Else
rsNotaFiscal!not_fisc1 = rsNotaFiscal!not_fisc1 + 1
End If
rsNotaFiscal.Update
rsNotaFiscal.Close
rsNF.Update
rsNF.Close
MsgBox "Gravado com sucesso"
''''
frmEstMontaNota.Show 1
flgTestaCol = True
deupau:
If Err.Number = -2147217873 Then 'Violação de prymary key
rsErro.LockType = adLockOptimistic
rsErro.Open "Select * from itensnotas where itnrseq = " & nrseq & " and itproduto = " & prod, bd, adOpenDynamic
rsErro!itqtdliq = rsNF!itqtdliq + qtdProd
rsErro.Update
rsErro.Close
GoTo retoma
' Else
' MsgBox "ATENÇÓ¡O!!! Ocorreu o erro " & Err.Number & " - " & Err.Description
End If
End Sub
Retire as variaveis depois do next, o vb entende em qual for está esse next, pode ser que melhore sua rotina...
Ex:
faça isso:
Blz...
For a=0 to 100
'comandos
next a
faça isso:
For a=0 to 100
'comandos
next
Blz...
Vi tbm que está faltando um END IF
[txt-color=blue]Private[/txt-color] [txt-color=blue]Sub[/txt-color] grava()
[txt-color=blue]Dim[/txt-color] rsnrseq [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] nrseq [txt-color=blue]As[/txt-color] [txt-color=blue]Integer[/txt-color]
[txt-color=blue]Dim[/txt-color] rsTN [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] rsTam [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] rsErro [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]On[/txt-color] [txt-color=blue]Error[/txt-color] [txt-color=blue]GoTo[/txt-color] deupau
[txt-color=green]'Gera nrseq:[/txt-color]
rsnrseq.[txt-color=blue]Open[/txt-color] "select * from notas order by nfnrseq", bd, adOpenDynamic
[txt-color=blue]If[/txt-color] [txt-color=blue]Not[/txt-color] rsnrseq.EOF [txt-color=blue]Then[/txt-color]
rsnrseq.MoveLast
nrseq = rsnrseq!nfnrseq + 1
[txt-color=blue]Else[/txt-color]
nrseq = 1
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsnrseq.[txt-color=blue]Close[/txt-color]
[txt-color=green]'zerar variaveis do calc. de ICM[/txt-color]
[txt-color=blue]Dim[/txt-color] K [txt-color=blue]As[/txt-color] [txt-color=blue]Integer[/txt-color]
[txt-color=blue]For[/txt-color] K = 1 [txt-color=blue]To[/txt-color] 9
baseIcm(K) = 0
baseIcmRed(K) = 0
alqIcm(K) = 0
alqIcmRed(K) = 0
[txt-color=blue]Next[/txt-color] K
isentasIcm = 0
OutrasIcm = 0
StIcm = 0
freteProd = 0
descProd = 0
acresProd = 0
percDesc = 0
aliqProd = 0
totIcm = 0
tmpUfCli = ""
tmpUfEmp = ""
[txt-color=blue]Dim[/txt-color] rsNat [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] rsConf [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] rsNF [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] rsCli [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
[txt-color=blue]Dim[/txt-color] rsEmp [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
rsNF.CursorType = adOpenKeyset
rsNF.LockType = adLockOptimistic
[txt-color=blue]Dim[/txt-color] tmpIt [txt-color=blue]As[/txt-color] [txt-color=blue]Integer[/txt-color]
[txt-color=blue]Dim[/txt-color] filtroNotas [txt-color=blue]As[/txt-color] [txt-color=blue]String[/txt-color]
filtroNotas = " WHERE nfano = " & Year(dtEmis.Value) & _
" [txt-color=blue]AND[/txt-color] nfempresa = " & lblEmp.Text & _
" [txt-color=blue]AND[/txt-color] nfcliente = " & lblCli.Text & _
" [txt-color=blue]AND[/txt-color] nfnrnota = " & Txtnrnota.Text & _
" [txt-color=blue]AND[/txt-color] nfdataemis = [txt-color=green]'" & dtEmis.Value & "'"[/txt-color]
rsConf.[txt-color=blue]Open[/txt-color] "configuracao", bd, adOpenDynamic
rsNF.[txt-color=blue]Open[/txt-color] "SELECT * from NOTAS " & _
filtroNotas, bd, , adCmdTable
[txt-color=blue]If[/txt-color] rsNF.EOF [txt-color=blue]Then[/txt-color]
rsNF.AddNew
[txt-color=blue]Else[/txt-color]
MsgBox "Nota já lançada", , "Aviso"
[txt-color=blue]Exit[/txt-color] [txt-color=blue]Sub[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsNF!nfano = Year(dtEmis.Value)
rsNF!nfempresa = lblEmp.Text
rsNF!nfcliente = lblCli.Text
rsNF!nfnrnota = Txtnrnota.Text
rsNF!nfnrseq = nrseq
rsNF!nfdataemis = dtEmis.Value
rsNF.Update
rsNF.[txt-color=blue]Close[/txt-color]
[txt-color=blue]Dim[/txt-color] i [txt-color=blue]As[/txt-color] [txt-color=blue]Integer[/txt-color]
[txt-color=blue]For[/txt-color] i = 1 [txt-color=blue]To[/txt-color] ubGrid.Rows
ubGrid.Col = 1
ubGrid.Row = i [txt-color=green]'[/txt-color]
[txt-color=blue]If[/txt-color] [txt-color=blue]Not[/txt-color] ubGrid.Text = Empty [txt-color=blue]Then[/txt-color]
[txt-color=blue]Dim[/txt-color] prod [txt-color=blue]As[/txt-color] [txt-color=blue]Long[/txt-color], prcProd [txt-color=blue]As[/txt-color] [txt-color=blue]Currency[/txt-color], totProd [txt-color=blue]As[/txt-color] [txt-color=blue]Currency[/txt-color]
[txt-color=blue]Dim[/txt-color] qtdProd [txt-color=blue]As[/txt-color] [txt-color=blue]Currency[/txt-color], tabPrc [txt-color=blue]As[/txt-color] [txt-color=blue]Integer[/txt-color]
[txt-color=blue]Dim[/txt-color] tam [txt-color=blue]As[/txt-color] [txt-color=blue]String[/txt-color]
ubGrid.Col = 1
prod = ubGrid.Text
ubGrid.Col = 3
[txt-color=blue]If[/txt-color] Len(ubGrid.Text) <> 0 [txt-color=blue]Then[/txt-color]
tam = ubGrid.Text
[txt-color=blue]Else[/txt-color]
tam = Empty
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=green]'End If[/txt-color]
ubGrid.Col = 4
[txt-color=blue]If[/txt-color] Len(ubGrid.Text) <> 0 [txt-color=blue]Then[/txt-color]
qtdProd = PegaNumerosMoney(ubGrid.Text)
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
ubGrid.Col = 5
tabPrc = Val(ubGrid.Text)
ubGrid.Col = 6
[txt-color=blue]If[/txt-color] Len(ubGrid.Text) = 0 [txt-color=blue]Then[/txt-color]
prcProd = 0
[txt-color=blue]Else[/txt-color]
prcProd = ubGrid.Text
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
ubGrid.Col = 7
[txt-color=blue]If[/txt-color] Len(ubGrid.Text) = 0 [txt-color=blue]Then[/txt-color]
totProd = 0
[txt-color=blue]Else[/txt-color]
totProd = ubGrid.Text
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=blue]If[/txt-color] Len(tam) <> 0 [txt-color=blue]Then[/txt-color]
rsTN.LockType = adLockOptimistic
rsTN.[txt-color=blue]Open[/txt-color] "Select * from tamanhosnotas", bd, adOpenDynamic
rsTN.AddNew
rsTN!TNNrSeq = nrseq
rsTN!TNProduto = prod
rsTam.[txt-color=blue]Open[/txt-color] "Select * from tamprods where tamanho = [txt-color=green]'" & tam & "'", bd, adOpenDynamic[/txt-color]
rsTN!TNTamanho = rsTam!codigo
rsTam.[txt-color=blue]Close[/txt-color]
rsTN!tntabpreco = tabPrc
rsTN!TNQuantidade = qtdProd
rsTN.Update
rsTN.[txt-color=blue]Close[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsCli.[txt-color=blue]Open[/txt-color] "select uf from clientes inner join cidades [txt-color=blue]on[/txt-color] clientes.cidade = cidades.codigo where clientes.codigo = " & lblCli.Text, bd, adOpenDynamic
rsEmp.[txt-color=blue]Open[/txt-color] "select uf from empresas inner join cidades [txt-color=blue]on[/txt-color] empresas.cod_cidade = cidades.codigo where empresas.codigo = " & lblEmp.Text, bd, adOpenDynamic
CalculaIcm prod, prcProd, totProd, txtDesc.Text, txtAcres.Text, txttotbruto.Text, txtFrete.Text, rsCli!UF, rsEmp!UF, lblNat.Text
rsCli.[txt-color=blue]Close[/txt-color]
rsEmp.[txt-color=blue]Close[/txt-color]
ubGrid.Col = 1
[txt-color=green]'itens das notas[/txt-color]
rsNF.[txt-color=blue]Open[/txt-color] "select * from itensnotas " & _
" WHERE itnrseq = " & nrseq & _
" [txt-color=blue]AND[/txt-color] itproduto = [txt-color=green]'" & ubGrid.Text & "' order by itItem", bd, , adCmdTable[/txt-color]
[txt-color=blue]If[/txt-color] rsNF.EOF [txt-color=blue]Then[/txt-color]
rsNF.AddNew
tmpIt = 0
[txt-color=blue]Else[/txt-color]
rsNF.MoveLast
tmpIt = rsNF!ititem
rsNF.AddNew
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsNF!itnrseq = nrseq
rsNF!itproduto = ubGrid.Text
rsNF!ititem = tmpIt + 1
rsNF!ITSit = "N"
rsNF!itvlrtot = totProd
[txt-color=blue]If[/txt-color] tabPrc > 0 [txt-color=blue]Then[/txt-color]
rsNF!ittabela = tabPrc
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=green]'rsnf!ITComis =0 (alterar depois)[/txt-color]
rsNF!itvlruni = prcProd
rsNF!itqtdliq = qtdProd
rsNF!ITFreteVlr = freteProd
rsNF!ITDescVlr = descProd
rsNF!ITAcreVlr = acresProd
rsNF!itAliqIcm = aliqProd
rsNF.Update
rsNF.[txt-color=blue]Close[/txt-color]
retoma: [txt-color=green]'retoma após tratar o erro no rsNF.update[/txt-color]
[txt-color=blue]If[/txt-color] rsNF.State = adStateOpen [txt-color=blue]Then[/txt-color]
rsNF.CancelUpdate
rsNF.[txt-color=blue]Close[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color] [txt-color=green]'Estava faltando[/txt-color]
[txt-color=blue]Next[/txt-color] i
[txt-color=green]'notas[/txt-color]
GravaIcm
GravaDesdobr
[txt-color=blue]Dim[/txt-color] rsPlaca [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
rsNF.[txt-color=blue]Open[/txt-color] "SELECT * from NOTAS " & _
filtroNotas, bd, , adCmdTable
rsNF!nfcodvend = lblVend.Text
rsNF!NFNatOp = lblNat.Text
rsNF!nfsituacao = "N"
rsNF!nftipo = "S"
rsNat.[txt-color=blue]Open[/txt-color] "select * from naturezaoper nat where codigo = " & lblNat.Text, bd, adOpenDynamic
[txt-color=blue]If[/txt-color] tmpUfCli = tmpUfEmp [txt-color=blue]Then[/txt-color]
[txt-color=blue]If[/txt-color] [txt-color=blue]Not[/txt-color] IsNull(rsNat!codfiscal1) [txt-color=blue]Then[/txt-color]
rsNF!NFCodFisc = rsNat!codfiscal1
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=blue]Else[/txt-color]
[txt-color=blue]If[/txt-color] [txt-color=blue]Not[/txt-color] IsNull(rsNat!codfiscal2) [txt-color=blue]Then[/txt-color]
rsNF!NFCodFisc = rsNat!codfiscal2
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsNF!nfdescvlr = txtDesc.Text
rsNF!nfdtsaida = dtSaida.Value
rsNF!nfhorasaida = txtHora.Text
rsNF!nffrete = txtFrete.Text
rsNF!nfespecie = "NF"
[txt-color=green]'rsNF!NFSerie = rsConf!serie_ent[/txt-color]
rsNF!NFObsLiv = rsNat!obs
rsNF!NFVlrContab = txtLiq.Text
rsNF!NFVlrProd = txttotbruto.Text
rsNat.[txt-color=blue]Close[/txt-color]
[txt-color=green]'NFIcmFrete Money[/txt-color]
[txt-color=green]'NFVlrComis Money[/txt-color]
[txt-color=green]'NFVlrComisG Money[/txt-color]
[txt-color=blue]If[/txt-color] txtIpi.Text > 0 [txt-color=blue]Then[/txt-color]
rsNF!NFBaseIPI = txtLiq.Text
[txt-color=blue]Else[/txt-color]
rsNF!NFBaseIPI = 0
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsNF!nfvlripi = txtIpi.Text
rsNF!NFCodVendS = lblVend.Text
rsNF!nfvlracr = txtAcres.Text
[txt-color=blue]If[/txt-color] Len(txtMoeda.Text) > 0 [txt-color=blue]Then[/txt-color]
rsNF!nfindice1 = txtMoeda.Text
rsNF!nfindice2 = txtMoeda.Text
rsNF!nfindice3 = txtMoeda.Text
rsNF!nfindice4 = txtMoeda.Text
rsNF!nfindice5 = txtMoeda.Text
rsNF!nfindice6 = txtMoeda.Text
rsNF!nfindice7 = txtMoeda.Text
rsNF!nfindice8 = txtMoeda.Text
rsNF!nfindice9 = txtMoeda.Text
rsNF!nfindice10 = txtMoeda.Text
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsNF!nfisicm = isentasIcm
rsNF!nfoutrasicm = OutrasIcm
rsNF!nfvlricm = totIcm
rsNF!nfvlrst = StIcm
rsNF!NFDtEmisOrig = dtEmis.Value
[txt-color=blue]Dim[/txt-color] rsNotaFiscal [txt-color=blue]As[/txt-color] [txt-color=blue]New[/txt-color] ADODB.Recordset
rsNotaFiscal.[txt-color=blue]Open[/txt-color] "select * from notasfiscais where empresa1 = " & lblEmp.Text, bd, , adCmdTable
[txt-color=blue]If[/txt-color] rsNotaFiscal.EOF [txt-color=blue]Then[/txt-color]
rsNotaFiscal.AddNew
rsNotaFiscal!empresa1 = lblEmp.Text
rsNotaFiscal!not_fisc1 = Txtnrnota.Text
[txt-color=blue]Else[/txt-color]
rsNotaFiscal!not_fisc1 = rsNotaFiscal!not_fisc1 + 1
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
rsNotaFiscal.Update
rsNotaFiscal.[txt-color=blue]Close[/txt-color]
rsNF.Update
rsNF.[txt-color=blue]Close[/txt-color]
MsgBox "Gravado com sucesso"
[txt-color=green]''''[/txt-color]
frmEstMontaNota.Show 1
flgTestaCol = [txt-color=blue]True[/txt-color]
deupau:
[txt-color=blue]If[/txt-color] Err.Number = -2147217873 [txt-color=blue]Then[/txt-color] [txt-color=green]'Violação de prymary key[/txt-color]
rsErro.LockType = adLockOptimistic
rsErro.[txt-color=blue]Open[/txt-color] "Select * from itensnotas where itnrseq = " & nrseq & " [txt-color=blue]and[/txt-color] itproduto = " & prod, bd, adOpenDynamic
rsErro!itqtdliq = rsNF!itqtdliq + qtdProd
rsErro.Update
rsErro.[txt-color=blue]Close[/txt-color]
[txt-color=blue]GoTo[/txt-color] retoma
[txt-color=green]' Else[/txt-color]
[txt-color=green]' MsgBox "ATENÇÓ¡O!!! Ocorreu o erro " & Err.Number & " - " & Err.Description[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]If[/txt-color]
[txt-color=blue]End[/txt-color] [txt-color=blue]Sub[/txt-color]
Tópico encerrado , respostas não são mais permitidas