Metodo FindFirst con due parametri

di il
4 risposte

Metodo FindFirst con due parametri

Scusate, sto tentando di scrivere una routine con la quale aggiornare una tabella (tblUdienzaMono) sulla base di due campi di un'altra tabella (MonoUdienza): [N R], che è uguale a txtRgtMonoPen della prima, e [Data Udienza] che come tipo di dati è uguale al campo Udienza.
Ad uno stesso numero di processo ([N R]) possono corrispondere più date di udienza [Data Udienza].
Tutto sembra funzionare regolarmente ma la routine non trova il record corrispondente anche se è esistente.
Grazie.

Set rst = db.OpenRecordset("MonoUdienza", dbOpenDynaset)
Set rsttblUdienzaMono = db.OpenRecordset("tblUdienzaMono", dbOpenDynaset)
rst.MoveFirst
rgt = rst("N R")
Dim criterio As String
Do Until rst.EOF
criterio = "txtRgtMonoPen = '" & rst("N R") & "'" & " and " & "Udienza = '" & Left(rst("Data Udienza"), & "'"
rsttblUdienzaMono.FindFirst criterio
If rsttblUdienzaMono.NoMatch = False Then
rst.MoveNext
Else
rsttblUdienzaMono.AddNew
End If
rst.MoveNext
Loop

4 Risposte

  • Re: Metodo FindFirst con due parametri

    Zoe14 ha scritto:


    sto tentando di scrivere una routine con la quale aggiornare una tabella (tblUdienzaMono) sulla base di due campi di un'altra tabella
    Hai pensato a una "query di aggiornamento"?

    N.B.: In base al regolamento del forum, quando scrivi codice (VBA o SQL..), clicca in basso su "Editor completo & Anteprima", seleziona la porzione di codice, poi clicca in alto sul tasto </> (codice) per farlo apparire poi con i tipici caratteri monotype più familiari ai programmatori.
  • Re: Metodo FindFirst con due parametri

    Mi piacerebbe sapere chi ti ha suggerito di nominare i campi con uno spazio... auguri.

    Il Criterio scritto così è DEBUGGABILE e per chi non ha una sufficiente dimestichezza, fare DEBUG è la prima cosa da impare, prima di chiedere aiuto.
    
    criterio = "txtRgtMonoPen = '" & rst("N R") & "' and " & "Udienza = '" & Left(rst("Data Udienza"), 8) & "'"
    Debug.Print criterio 
    Ora vuoi dire che hai un campo che si chiama [txtRgtMonoPen]...? a me pare il nome di una TextBox e non di un campo...!
  • Re: Metodo FindFirst con due parametri

    Chiedo scusa anzitutto per non aver seguito il regolamento per scrivere il codice. E' la prima volta che scrivo.
    Quanto agli spazi, lo so che non vanno lasciati, ma era una tabella di servizio presa da un foglio Excel che doveva essere cancellata.
    Su tutti i manuali, poi, ho sempre letto che è meglio mettere un suffisso davanti al nome del campo per indicare il tipo di dati.
    Ho risolto facendo prima una query e poi applicando sul risultato il metodo findfirst.
    Mi chiedo però se proprio non possono essere passati due criteri o sono io che non ci riesco. Facendo il debugging (che avevo fatto) mi dava l'errore "dati non corrispondenti"
    Grazie per i consigli
  • Re: Metodo FindFirst con due parametri

    Scusa ma lobstralcio di codice che ti ho proposto non ha 2 criteri...?
Devi accedere o registrarti per scrivere nel forum
4 risposte