Buongiorno e buon anno a tutti,
rieccomi con un nuovo quesito sul quale batto la testa da stamani e non riesco a trovarne soluzione, nessun help in linea è riuscito darmi alcuna indicazione.
L'ambito è sempre il solito, una applicazione condivisa da magazzino e ufficio aquisti che il magazziniere usa per far sapere articoli e quantità da comprare.
L'applicazione lavora su una tblMancanti che è riempita dal magazziniere a mano tramite maschera, e da un foglio excel generato dall'ufficio acquisti tramite apposita procedura sul gestionale aziendale, gestito come tabella collegata, e che contiene la lista degli ordini effettuati a partire da una certa data.
In una maschera apposita l'ufficio acquisti ha la possibilità di comunicare al magazziniere per ogni singolo codice richiesto i parametri dell'ordine effettuato, tramite importazione dei dati dal foglio excel menzionato sopra tramite procedura VBA.
Dalla tabella interna prelevo i dati di interesse tramite la query qryDaOrdinare, dal file excel tramite la query qryOrdiniFornitore.
La qryDaOrdinare è stata fatta manualmente su access tramite le apposite funzioni, mentre la qryOrdiniFornitore la creo ed eseguo tramite VBA con
DoCmd.OpenQuery (strNomeQuery)
DoCmd.Close acQuery, strNomeQuery
Fatto questo apro i Recordset:
Set dbsLocale = CurrentDb
Set rstOrdini = dbsLocale.OpenRecordset("qryOrdiniFornitore", dbOpenDynaset)
Set rstMancanti = dbsLocale.OpenRecordset("qryDaOrdinare", dbOpenDynaset)
La lettura dei dati dalla query OrdiniFornitore e la scrittura nella query DaOrdinare e da qui nella tabella funziona correttamente.
Quello che non funziona è l'aggiornamento della quantità ordinata nella query OrdiniFornitore, lo scopo è aggiornare la quantità di pezzi ancora disponibili di quell'articolo per eventuali altre commesse che usano lo stesso pezzo. Quindi:
If rstMancanti.Fields("QuantitaInevasa").Value > 0 Then
rstOrdini.Fields("Qta").Value = 0
Else
rstOrdini.Fields("Qta").Value = rstOrdini.Fields("Qta").Value - rstMancanti.Fields("QuantitaOrdinata").Value
End If
mi genera l'errore 3027 "Impossibile aggiornare. Database o oggetto di sola lettura" nella riga sotto l'Else.
Le prove le sto facendo sul mio pc che non è in rete, il foglio excel è chiuso, l'apertura in modalità Dynaset dovrebbe consentirmi di fare quello che voglio fare, invece ho questo errore e non riesco a capire quale sia il problema.
Qualche idea ?
Grazie
Ste