Access -Inserire un nuovo record tramite macro-

giovedì 13 ottobre 2005 - 11.04

xallets Profilo | Newbie

Salve,
premetto che non sono molto esperto di Access, e che purtroppo ho trovato un'intoppo abbastanza noioso da aggirare.
Vi faccio l'esempio pratico che forse può chiarire meglio di una spiegazione data senza i corretti termini.
Io ho due tabelle Ordini e Fornitori, ovviamente la seconda ha una join (non so se è il termine giusto) nella prima tabella.
Ora se io apro Ordini e scelgo un Fornitore che non è in elenco, devo prima andarlo a inserire e poi ad aggiornare il campo per vederlo inserito. Pensavo di automatizzare questa operazione con una macro, ma dopo svariati tentativi non ci sono riuscito. Ora vi chiedo se è possibile tramite macro o devo utilizzare obbligatoriamente il Visual Basic?
Ringrazio chiunque mi possa aiutare e scusate per il linguaggio prettamente non tecnico.
Alessandro

Cteniza Profilo | Guru

Credo tu lo possa risolvere con vba eseguendo:

CurrentProject.Connection.Execute "INSERT INTO mytabe (campo, campo, campo, campo) VALUES (valore, valore, valore, valore)"

I campi sono naturalmente i campi che vuoi popolare
i valori sono i corrispondenti valori da scrivere
Il "tipo di dato" dei valori deve corrispondere con il "tipo di dato" dei campi, ad esempio se si tratta di testo devi mettere un apice singolo (') prima e dopo ciascun valore.

xallets Profilo | Newbie

Ciao, ti ringrazio per la risposta, ma non c'è una soluzione alternativa al vba?
Alessandro

franco_44 Profilo | Newbie

ti invio questo codice a me funziona

Vuoi aggiungere un nuovo record ad una casella combinata (combo box).
In NomeTabella mettere la Tabella che si vuole aggiornare; in NomeCampo il Campo dei dati da aggiornare
Soluzione

L'utente scrive nella casella un valore non presente nell'elenco. Lo vuoi aggiungere all'origine dati in automatico, senza chiedere conferme. Quindi devi:
- ordinare la casella dopo che il campo ha avuto l'inserimento
- impostare la proprieta Solo in elenco a Sì
- utilizzare il seguente codice nell'evento Su non in elenco della combo

'************** INIZIO CODICE **************
Response = acDataErrAdded

Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("NomeTabella", dbOpenDynaset)

rs.AddNew
rs!NomeCampo = NewData
rs.Update

rs.Close : Set rs = Nothing
Set db = Nothing


franco

xallets Profilo | Newbie

Grazie, proverò a usare il VB ma avrei preferito farlo senza, anche se tutt'ora non ho ancora trovato la soluzione.
Voglio provare con il codice.
Alessandro

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5