AJUDA COM LOGICA

USUARIO.EXCLUIDOS 28/09/2004 08:53:51
#43715
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

USUARIO.EXCLUIDOS 28/09/2004 09:01:56
#43716
Resposta escolhida
Retire as variaveis depois do next, o vb entende em qual for está esse next, pode ser que melhore sua rotina...
USUARIO.EXCLUIDOS 28/09/2004 09:09:26
#43718
Ex:

For a=0 to 100
'comandos
next a



faça isso:


For a=0 to 100
'comandos
next



Blz...
USUARIO.EXCLUIDOS 28/09/2004 09:17:52
#43719
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