Buongiorno,
ho il seguente inghippo che non so come risolvere.
Esplicito la situazione utilizzando nomi semplificati: ho tre tabelle tblOfferteclienti, tblOrdiniclienti e tblCommesse.
tblOfferteclienti con i campi: IDofferta (PK), IDCliente (FK), Numeroofferta, Revisioneofferta, Dataofferta, Linkofferta, Flagoffertaevasa
tblOrdiniclienti con i campi: IDordine (PK), IDCliente (FK), Numeroordine, Revisioneordine, Dataordine, Linkordine, Flagoordineevaso
tblCommesse con i campi: IDCommessa (PK), IDCliente (FK), IDofferta (FK), IDordine (FK), + altri campi
Per ognuna delle tre tabelle ho le relative forms di inserimento/interrogazione dati.
La procedura corretta in ordine cronologico prevederebbe l'inserimento dell'anagrafica offerta fatta al cliente, poi a seguire l'inserimento dell'anagrafica ordine cliente ed infine le creazione della commessa di lavoro.
Quando inserisco la commessa di lavoro seleziono la relativa offerta cliente e l'ordine cliente da due combobox che mi propongono un elenco di dati non ancora evasi (flag=falso) per il Cliente selezionato.
Le combo si basano su query di selezione che hanno la seguente origine (questa e' quella delle offerte, analoga per gli ordini):
SELECT DISTINCT tblOfferteclienti.IDofferta, tblOfferteclienti.Numeroofferta, tblOfferteclienti.Dataofferta, tblOfferteclienti.Revisioneofferta FROM tblOfferteclienti WHERE (((tblOfferteclienti.IDCliente)=[Maschere]![frmPRcommessaprincipale]![IDCliente]) AND ((tblOfferteclienti.FLAGtabOEoffertaevasa)=False)) ORDER BY tblOfferteclienti.DATAtabOEdataofferta DESC , tblOfferteclienti.DEStabOEnumeroofferta DESC , tblOfferteclienti.Revisioneofferta DESC;
E fin qui tutto bene.
Quando devo interrogare l'offerta selezionata o se devo inserire una nuova offerta non ancora in elenco ho le seguente routine sul doppio click della combo:
Private Sub cboIDofferta_DblClick(Cancel As Integer)
On Error GoTo Err_cboIDofferta_DblClick
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmOfferteclienti"
If Not IsNull(Me.cboIDofferta.Value) Then
stLinkCriteria = "[IDofferta]=" & Me![cboIDofferta]
DoCmd.OpenForm stDocName, , , stLinkCriteria
Else
DoCmd.OpenForm stDocName, , , , acFormAdd
End If
Exit_cboIDofferta_DblClick:
Exit Sub
Err_cboIDofferta_DblClick:
MsgBox Err.Description
Resume Exit_cboIDofferta_DblClick
End Sub
Il problema me lo trovo dopo avere inserito la nuova offerta e chiudo la frmOfferteclienti, ritorno sulla frmCommessa con il fucus nella cboIDofferta pero' ovviamente non mi trovo il valore appena inserito finche' non c'e' il requery della combo e per fare cio' devo uscire dal controllo e poi rientrare (ho inserito sul gotfocus del controllo Me.cboIDofferta.Requery).
Sono quindi a chiedere un Vostro consiglio su come poter automatizzare questo requery, sempre che sia possibile, senza dover uscire e rientrare nel controllo (la situazione e' ovviamente analoga anche per l'ordine).
Grazie in anticipo