Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Ciao, sempre stesso problema purtroppo
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 creare una sub su evento della pressione di un tasto (KeyAscii) in una listbox con due eventi: la pressione del tasto Backspace che permette di trovare il record nella tabella collegata alla listbox ed eliminarlo, o la pressione del tasto Enter, che permette invece di modificarne un valore tramite una inputbox, per fare ciò ho provato ad utilizzare la proprietà Recordset.FindFirst per trovare il primo record del recordset in questione che abbia il campo "Codice Tras" uguale a quello della riga selezionata dalla listbox e il campo "Codice Prodotto" uguale a quello selezionato nella listbox.
il codice è il seguente:
Private Sub Elenco187_KeyPress(KeyAscii As Integer)
'BackSpace: 8 - Enter: 13
Dim tabord As DAO.Recordset
Set tabord = CurrentDb.OpenRecordset("TOrdini")
If (KeyAscii = 8) Then
tabord.FindFirst "[codTras]= '" & Forms!MainBoard!Elenco187.Column(0).Value & "'" And "codprod= '" & Forms!MainBoard!Elenco187.Column(1).Value & "'"
tabord.Edit
'comando per eliminare record corrente
tabord.Update
End If
If (KeyAscii = 13) Then
tabord.FindFirst "[codTras]='" & Forms!MainBoard!Elenco187.Column(0).Value & "'" & " And codprod='" & Forms!MainBoard!Elenco187.Column(1).Value & "'"
tabord.Edit
tabord.Fields("ncolli") = InputBox("Inserire nuova quantità:")
tabord.Update
End If
KeyAscii = 0
Me.Refresh
End Sub
Mi da errore di Runtime 424 "Necessario Oggetto" sulla riga di tabord.FindFirst.
Qualcuno saprebbe dirmi come risolvere questo errore?
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.
Ok, prova a variare la riga con:
tabord.FindFirst "[codTras]= '" & Forms!MainBoard!Elenco187.Column(0).Value & "' And codprod= '" & Forms!MainBoard!Elenco187.Column(1).Value & "'"
Ciao Mimmo
Purtroppo no, non è cambiato nulla, da sempre il solito errore, segnalando la riga del findfirst
ciao Ivan,
supponendo la tabella :
ed una maschera che mostra nella list box i suddetti dati, le colonne sono 2 la prima è nascosta ed è la chiave primaria :
agendo sul comando delete ottengo :
su doppio click di un elemento selezionato ottengo l'apertura della form su quel records per modificarlo:
questo il codice vba :
Option Compare Database
Option Explicit
Private Sub cmdDelete_Click()
With Me.lstCat
If Not .ListIndex Then
If VBA.MsgBox(prompt:="confermi l'eliminazione di " & vbNewLine & """" & .Column(1) & """?", _
buttons:=vbYesNo + vbExclamation, _
Title:="Attenzione") = vbYes Then
DBEngine(0)(0).Execute "delete * from categorie where IDCategoria=" & .Column(0), &H80
.Requery
End If
End If
End With
End Sub
Private Sub lstCat_DblClick(Cancel As Integer)
DoCmd.OpenForm FormName:="categorie", _
View:=acNormal, _
wherecondition:="idcategoria=" & Me.lstCat.Column(0)
End Sub
tendenzialmente eviteri il recordset e relativo metodi per il problema che poni.
Ciao, Sandro.
Ciao,
prova a cambiare la set con:
Set tabord = CurrentDb.OpenRecordset("Select * From TOrdini")
o anche
Set tabord = CurrentDb.OpenRecordset("TOrdini", dbOpenDynaset)
Ciao Mimmo