Newsgroup: it.comp.lang.visual-basic
Titolo: Errore indecifrabile con VB6

Ho realizzato un software per la gestione del magazzino con VB6, tale
programma funziona su una rete LAN. Alcune volta capita che nello scarico
degli articoli dal magazzino viene fuori il seguente errore:
Errore di run-time '3101'
The Microsoft Jet database engine can't find a record in the table
'ListaDDT' with key matching field(s) 'codclif'.
Aggiungo che la rete č stata gią testata e risulta perfettamente
funzionante.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 'ListaDDT' with key matching field(s) 'codclif'.
Mumble mumble...puoi postare il codice che lo genera?
Alex

Alex
Di seguito troverete la parte di programma dove si verifica l'errore, vi
ripeto però che non avviene sempre.
Sub PRO_scontrino(reparto_t)
Dim tipo_t, ric_Codunico, tipo2_t
tipo_t = "CO"
tipo2_t = fun_Tipo2(tipo2_t)
If rsDDTnew.RecordCount = 0 Then
    Unload frmNewCli
    Exit Sub
End If
'frmTipo.Show 1
Set rsDDT = mdbArchivio.OpenRecordset("SELECT
DDT.*,Clienti.nomecli,ListaDDT.pagato " _
            & " FROM DDT INNER JOIN(ListaDDT INNER JOIN Clienti ON
Clienti.codcli = ListaDDT.codcli) ON ListaDDT.codclif=DDT.codclif " _
            & " WHERE DDT.codclif = " & rico_Codclif _
            & "  ;")
'******************************* è qui che da l'errore!!!!
rsDDTnew.MoveFirst
While rsDDTnew.EOF = False
    rsDDT.AddNew
    rsDDT!codart = IIf(IsNull(rsDDTnew!codart), " ", rsDDTnew!codart)
    rsDDT!descri = IIf(IsNull(rsDDTnew!descri), " ", rsDDTnew!descri)
    rsDDT!qta = IIf(IsNull(rsDDTnew!qta), 0, rsDDTnew!qta)
    rsDDT!Prezzo = IIf(IsNull(rsDDTnew!Prezzo), 0, rsDDTnew!Prezzo)
    rsDDT!iva = IIf(IsNull(rsDDTnew!iva), 0, rsDDTnew!iva)
    ric_Iva = rsDDTnew!iva
    tipo_t = fun_TipoPagam(tipo_t)
    rsDDT!reparto = reparto_t
    rsDDT!note = txtNote.text
    rsDDT!numfat = rico_Numfat
    rsDDT!datafat = rico_Datafat
    rsDDT!codclif = rico_Codclif
    ric_Codunico = rsDDTnew!codunico
    '!lista = ric_Lis + 1
    rsDDT.Update
    rsDDT.MoveLast
    ''''''' aggiorna le quantità dell'articolo
            Set rsArticoli = mdbArchivio.OpenRecordset("SELECT * " _
                & " FROM articoli " _
                & " WHERE codice = '" & rsDDTnew!codart & "' ;")
            If rsArticoli.RecordCount = 1 Then
                rsArticoli.Edit
                rsArticoli!qta = rsArticoli!qta - rsDDTnew!qta
                rsArticoli.Update
            End If
    ''''''' mette a posto listview del form precedente
    Set itmX = frmDDT.ListView1.ListItems.Add(, , CStr(rsDDTnew!codart))
        itmX.SubItems(1) = CStr(rsDDTnew!descri)
        itmX.SubItems(2) = CStr(rsDDTnew!qta)
        itmX.SubItems(3) = Format(CStr(rsDDTnew!Prezzo / (1 +
(rsDDTnew!iva / 100))), "#########0.00")
        itmX.SubItems(4) = CStr(rsDDTnew!iva)
        itmX.SubItems(5) = Format(rsDDTnew!Prezzo * rsDDTnew!qta,
"#########0.00")
        itmX.SubItems(6) = CStr(tipo_t)
        itmX.SubItems(7) = CStr(rsDDT!codunico)  'CStr(rsDDTnew!codunico)
        ric_Codunico = rsDDT!codunico + 1
    If rsDDTnew.EOF = False Then
        rsDDTnew.MoveNext
    End If
Wend
If (txtSconto.text - txtPrezzoS.text) <> 0 Then 'se c'è lo sconto fa una
riga in più
    rsDDT.AddNew
    rsDDT!codart = "SCONTO"
    rsDDT!descri = "SCONTO"
    rsDDT!qta = 1
    rsDDT!Prezzo = (txtSconto.text - txtPrezzoS.text)
    rsDDT!iva = ric_Iva 'iva sempre al 20
    rsDDT!reparto = reparto_t
    rsDDT!note = txtNote.text
    rsDDT!tipo = tipo_t
    rsDDT!numfat = rico_Numfat
    rsDDT!datafat = rico_Datafat
    rsDDT!codclif = rico_Codclif
    rsDDTnew.MovePrevious
    rsDDT.Update
    Set itmX = frmDDT.ListView1.ListItems.Add(, , CStr("SCONTO"))
        itmX.SubItems(1) = CStr("SCONTO")
        itmX.SubItems(2) = CStr("1")
        itmX.SubItems(3) = Format(CStr((txtSconto.text - txtPrezzoS.text)
* (1 + (ric_Iva / 100))), "#########0.00")
        itmX.SubItems(4) = CStr(ric_Iva)
        itmX.SubItems(5) = Format((txtSconto.text - txtPrezzoS.text),
"#########0.00")
        itmX.SubItems(6) = CStr(tipo_t)
        itmX.SubItems(7) = CStr(ric_Codunico) 'CStr(rsDDTnew!codunico)
        ric_Codunico = rsDDT!codunico + 1
    rsDDT.MoveLast
End If
If txtAcconto.text <> "0" Then  ' se c'è l'acconto deve aggiungere due
righe in listview
    rsDDT.AddNew                ' una in - e una in +
    rsDDT!codart = "Acconto-"
    rsDDT!descri = "Acconto non finanziato"
    rsDDT!qta = 1
    rsDDT!Prezzo = 0 - (txtAcconto.text)
    rsDDT!iva = ric_Iva 'iva sempre al 20
    rsDDT!reparto = reparto_t
    rsDDT!note = "Acconto non finanziato"
    rsDDT!tipo = tipo_t
    rsDDT!numfat = rico_Numfat
    rsDDT!datafat = rico_Datafat
    rsDDT!codclif = rico_Codclif
    'rsDDTnew.MovePrevious
    rsDDT.Update
    Set itmX = frmDDT.ListView1.ListItems.Add(, , CStr("Acconto-"))
        itmX.SubItems(1) = CStr("Acconto non finanziato")
        itmX.SubItems(2) = CStr("1")
        itmX.SubItems(3) = Format(CStr((0 - txtAcconto.text) * (1 +
(ric_Iva / 100))), "#########0.00")
        itmX.SubItems(4) = CStr(ric_Iva)
        itmX.SubItems(5) = Format(0 - (txtAcconto.text), "#########0.00")
        itmX.SubItems(6) = CStr(tipo_t)
        itmX.SubItems(7) = CStr(ric_Codunico) 'già è stato sommato
        ric_Codunico = rsDDT!codunico + 1
    rsDDT.MoveLast
    rsDDT.AddNew     ' aggiunge la seconda riga ...il più
    rsDDT!codart = "Acconto+"
    rsDDT!descri = "Acconto versato"
    rsDDT!qta = 1
    rsDDT!Prezzo = (txtAcconto.text)
    rsDDT!iva = ric_Iva 'iva sempre al 20
    rsDDT!reparto = reparto_t
    rsDDT!note = "Acconto versato"
    rsDDT!tipo = tipo2_t
    rsDDT!numfat = rico_Numfat
    rsDDT!datafat = rico_Datafat
    rsDDT!codclif = rico_Codclif
    'rsDDTnew.MovePrevious
    rsDDT.Update
    Set itmX = frmDDT.ListView1.ListItems.Add(, , CStr("Acconto+"))
        itmX.SubItems(1) = CStr("Acconto versato")
        itmX.SubItems(2) = CStr("1")
        itmX.SubItems(3) = Format(CStr((txtAcconto.text) * (1 + (ric_Iva /
100))), "#########0.00")
        itmX.SubItems(4) = CStr(ric_Iva)
        itmX.SubItems(5) = Format((txtAcconto.text), "#########0.00")
        itmX.SubItems(6) = CStr(tipo2_t)
        itmX.SubItems(7) = CStr(ric_Codunico) 'già è stato sommato
        ric_Codunico = rsDDT!codunico + 1
    rsDDT.MoveLast
End If
strPrezzoG = frmNewCli.txtSconto.text
Unload frmNewCli
txtSconto.text = strPrezzoG
End Sub
