Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Ciao,
tabprod.FindFirst "NcodProdotto = " & Forms!MainBoard!CampoCodProd
Mimmo
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Salve, dovrei ricercare nella tabella "TProdotti" un codice del campo "NcodProdotto" (numerazione automatica) confrontando il valore con un campo di inserimento di una form. Mi da l'errore di runtime 3251: Operazione non supportata per questo tipo di oggetto.
Qualcuno saprebbe aiutarmi?
Private Sub ButtonModProd_Click()
Dim tabprod As DAO.Recordset
Set tabprod = CurrentDb.OpenRecordset("TProdotti")
If (Forms!MainBoard!CampoCodProd = "") Then
MsgBox ("Nessun Record selezionato.")
Else
tabprod.FindFirst "NcodProdotto = Forms!MainBoard!CampoCodProd"
tabprod.Edit
tabprod.Fields("TcodArticolo") = Forms!MainBoard!Campo8
tabprod.Fields("TcodSeriale") = Forms!MainBoard!Campo7
tabprod.Fields("TMarca") = Forms!MainBoard!Campo1
tabprod.Fields("TModello") = Forms!MainBoard!Campo2
tabprod.Fields("TFornitore") = Forms!MainBoard!Campo3
tabprod.Fields("Nprezzo") = Forms!MainBoard!Campo4
tabprod.Fields("DvaliditaDa") = Forms!MainBoard!Campo5
tabprod.Fields("DvaliditaA") = Forms!MainBoard!Campo6
tabprod.Update
End If
End Sub
Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Risposta accettata dall'autore della domanda
Ciao,
tabprod.FindFirst "NcodProdotto = " & Forms!MainBoard!CampoCodProd
Mimmo
Risposta accettata dall'autore della domanda
ciao Ivan,
per quanto al metodo findFirst se il campo CampoCodProd oltre che autonumbner è una pk ti consiglierei il metodo seek.
Ma la cosa più importante è un' altra.
Invece di aprire un recordset e aggiornare un campo alla volta usa una query di aggiornamento e aggiorni tutto in un solo colpo.
salva questo predicato sql e chiamo queryUpdate
UPDATE TProdottiSET
TProdottiSET.TcodArticolo= Eval("[forms]![MainBoard]![Campo8]"),
TProdottiSET.TcodSeriale= Eval("[forms]![MainBoard]![Campo7]")
TProdottiSET.TMarca= Eval("[forms]![MainBoard]![Campo1]")
TProdottiSET.TModello= Eval("[forms]![MainBoard]![Campo2]")
TProdottiSET.TFornitore= Eval("[forms]![MainBoard]![Campo3]")
TProdottiSET.Nprezzo= Eval("[forms]![MainBoard]![Campo4]")
TProdottiSET.DvaliditaDa= Eval("[forms]![MainBoard]![Campo5]")
TProdottiSET.DvaliditaA= Eval("[forms]![MainBoard]![Campo6]")
WHERE TProdottiSET.NcodProdotto )=Eval("[forms]![MainBoard]![CampoCodProd]")
e poi esegui tutto al click del command button.
Private Sub ButtonModProd_Click()
If Len(Me.CampoCodProd & vbNullString) = 0 Then
VBA.MsgBox prompt:="CampoCodProd mancante", _
buttons:=vbCritical, _
Title:="Attenzione"
Exit Sub
End If
DBEngine(0)(0).Execute "queryUpdate", &H80
VBA.MsgBox prompt:="Aggiornamento eseguito", _
buttons:=vbInformation, _
Title:="Info"
End Sub
ciao, Sandro.
Risposta accettata dall'autore della domanda
Ciao,
prova a sostituire:
Set tabprod = CurrentDb.OpenRecordset("Select * from TProdotti")
ciao Mimmo
Così ha funzionato, Grazie mille per l'aiuto!
Grazie mille, solo che ora il problema è il seguente:
tabprod.FindFirst "NcodProdotto = Forms!MainBoard!CampoCodProd"
Così dice che Forms!MainBoard!CampoCodProd non è riconosciuto come espressione o come campo valido
se invece metto
tabprod.FindFirst "NcodProdotto = 50"
funziona, ma mi servirebbe paragonarlo ad un campo, non ad un numero fisso. ho provato anche ad usare una variabile temporanea ma il risultato non è cambiato.