Newsgroup: it.comp.appl.access
Titolo: utilizzo non valido di Null

ciao vi espono il mio problema sperando di trovare una soluzione...
finora avevo un db sulla mia macchina non diviso tra be e fe e non in
rete...e poi l'ho diviso e messo in rete...
ho creato una barra degli strumenti personalizzata in cui attivo una macro
chiamata "nuova_us". in questa macro viene eseguita una funzione chiamata
"nuovo_record_us()"
PROBLEMA:
Generare in automatico per 4 tabelle secondarie il valore dell ID della
tabella principale
'inizio ++++++++++++++++++++
Function nuovo_record_US()
On Error GoTo nuovo_record_US_Err
  Dim ds1 As DAO.Recordset
  Dim db1 As Database
 
  Set db1 = CurrentDb
  Set ds1 = db1.OpenRecordset("registro", dbOpenDynaset)
 
    ds1.AddNew
    ds1.Update
    db1.Close
    DoCmd.OpenForm "MA_SCHEDATURA", acNormal, "", "", , acNormal
    DoCmd.GoToRecord acForm, "MA_SCHEDATURA", acFirst
    Call nuovirecordUSvsAQS
nuovo_record_US_Exit:
    Exit Function
nuovo_record_US_Err:
    MsgBox Error$
    Resume nuovo_record_US_Exit
End Function
'fine ++++++++++++++++++++
questa mi permette di creare un nuovo record e di aprire la maschera
"MA_SCHEDATURA" posizionandosi sul primo record
la stessa funzione chiama: Call nuovirecordUSvsAQS
'inizio ++++++++++++++++++++
Function nuovirecordUSvsAQS()
  Dim ds1 As DAO.Recordset
  Dim db1 As Database
  Dim primo As Integer
 
  Set db1 = CurrentDb
  Set ds1 = db1.OpenRecordset("t_amb", dbOpenDynaset)
    primo = ds1("idreggen")
    ds1.AddNew
 
    ds1("IDRegGen") = Forms![ma_schedatura]![idregGen]
ds1.Update
db1.Close
  Dim ds2 As DAO.Recordset
  Dim db2 As Database
  Dim secondo As Integer
 
  Set db2 = CurrentDb
  Set ds2 = db2.OpenRecordset("t_se", dbOpenDynaset)
    secondo = ds2("idreggen")
    ds2.AddNew
 
    ds2("IDRegGen") = Forms![ma_schedatura]![idregGen]
ds2.Update
db2.Close
  Dim ds3 As DAO.Recordset
  Dim db3 As Database
  Dim terzo As Integer
 
  Set db3 = CurrentDb
  Set ds3 = db3.OpenRecordset("t_q", dbOpenDynaset)
    terzo = ds3("idreggen")
    ds3.AddNew
 
    ds3("IDRegGen") = Forms![ma_schedatura]![idregGen]
ds3.Update
db3.Close
  Dim ds4 As DAO.Recordset
  Dim db4 As Database
  Dim quarto As Integer
 
  Set db4 = CurrentDb
  Set ds4 = db4.OpenRecordset("t_annolista", dbOpenDynaset)
    quarto = ds4("idreggen")
    ds4.AddNew
 
    ds4("IDRegGen") = Forms![ma_schedatura]![idregGen]
ds4.Update
db4.Close
End Function
'fine ++++++++++++++++++++
questa mi permette di aprire le 4 tabelle collegate e inserire in automatico
il valore idreggen della maschera "ma_schedatura".
ora mi chiedo perchè sulla mia macchina il sistema funziona e se lo metto in
rete no?
è un problema dovuto alla velocità di connessione della rete (10mb)?
Grazie.
Tz
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 
Ciao
E cosa c'entra l'utilizzo non valido di null ?
Comunque è successo spesso anche a me che dividendo tra FE e BE
operazioni
di inserimento tramite DAO non rendessero immediatamente disponibile il
nuovo record inserito. Perchè io scommetto che i record vengono inseriti
 ma non visualizzarti. In queto caso :
- o provi delle operazioni "fittizie" e avventurose sul recordset 
(apri , chiudi ..... ) dopo la scrittura 
- oppure sostituisci le istruzioni VBA DAO con SQL
Ciao
MArco
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

tiziano ha scritto:

Perchè devi usare 4 Oggetti Database e 4 Oggetti Recordset..???
Usa un solo Oggetto Database ed un solo oggetto Recordset.
Dim ds As DAO.Recordset
Dim db As Database
Dim Valore As Integer
Set db = CurrentDb
   ' Aggiornamento 1° Tabella
   Set ds = db.OpenRecordset("t_amb", dbOpenDynaset)
   Valore = ds("idreggen")
   ds.AddNew
   ds("IDRegGen") = Forms![ma_schedatura]![idregGen]
   ds.Update
   ds.close
   set ds=Nothing
   ' Aggiornamento 2° Tabella
   Set ds = db2.OpenRecordset("t_se", dbOpenDynaset)
   Valore = ds2("idreggen")
   ds.AddNew
   ds("IDRegGen") = Forms![ma_schedatura]![idregGen]
   ds.Update
   ds.close
   set ds=Nothing
   ' Aggiornamento 3° Tabella
   ........................
   ' Aggiornamento 4° Tabella
   ........................
db.Close
Set db=nothing
Riprova e facci sapere se hai ancora il problema.
Ciao
@Alex

cut

buongiorno, solo oggi ho avuto modo di leggere il tuo post ne avevo
insertiti 4 perchè non sapevo come fare ora ne ho appreso una nuova...ad
ogni modo il problema o il messaggio di errore non si è più ripresentato
come per magia dopo aver inserito il tuo codice.
ciao Tz


 ciao Tz
Non è Magia, il tuo metodo apriva 4 istanze di Database con CurrentDb
e probabilmente era quello il motivo.
@Alex


Grazie


 > [CUT]
ciao problema con db in rete...
il problema non si è verificato sulla mia macchina ma riprovando sul db in
rete ho ritrovato lo stesso problema, ovvero utilizzo non valido di null,
dopo aver aggiornato con il nuovo codice...che fare ora?è forse un problema
di refresh dei record?non so se ho scritto bene...



Potrebbe dipendere dalla velocità di esecuzione, prova ad inserire un
DOEVENTS
' Aggiornamento 1° Tabella
   Set ds = db.OpenRecordset("t_amb", dbOpenDynaset)
   Valore = ds("idreggen")
   ds.AddNew
   ds("IDRegGen") = Forms![ma_schedatura]![idregGen]
   ds.Update
   '
--------------------------------------------------------------------
   ' AGGIUNGI
   doevents
   '
--------------------------------------------------------------------
   ds.close
   set ds=Nothing
   ' Aggiornamento 2° Tabella
   Set ds = db2.OpenRecordset("t_se", dbOpenDynaset)
   Valore = ds2("idreggen")
   ds.AddNew
   ds("IDRegGen") = Forms![ma_schedatura]![idregGen]
   ds.Update
'  --------------------------------------------------------------------
   ' AGGIUNGI
   doevents
   '
--------------------------------------------------------------------
   ds.close
   set ds=Nothing
   ' Aggiornamento 3° Tabella
   ........................
   ' Aggiornamento 4° Tabella
   ........................ 
Ciao
@Alex


ciao non funziona nemmeno con
doevents
ho pensato fosse perchè eravamo in due sullo stesso db ma anche provando
singolarmente avviene lo stesso problema....
ciao


[CUT]
ciao ora funziona... non dirmi o chiedermi perchč...
spero domani sia ancora cosě e con piů macchine in rete.
Ciao
