Newsgroup: it.comp.appl.access
Titolo: Apertura di 2 recordset con access...

Salve a tutti avrei necessita' di poter aprire 2 diversi recordset con
access 97, ma appena inizio ad aggiornarne uno, l'altro si blocca.
E' possibile aggiornare 2 recordset separatamente (devo aggiornare 2 tabelle
diverse, non la stessa)
Grazie
PS Posso passare anche a versioni superiori di access se necessario

 wrote in message
news:aek715$20b$
1...@lacerta.tiscalinet.it

Si è possibile, solo probabilmente sbagli qualche procedura...!!
Prova a postare un minimo di codice......!!
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Il db e' lo stesso e le tabelle sono uguali
Mi interessa aggiornare le 2 tabelle separatamente.
Se aggiorno una , l'altra mi dice che e' bloccata dall'utente...
Mi interessa farlo con Jet pero'
Mi puoi fare la cortesia di postarmi qualche riga di codice che mi faccia
aggiornare due tabelle diverse senza bloccarmi  tutto?
Grazie
Private Sub Command1_Click()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, num As Integer
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
num = 0
cn.ConnectionString = "DSN=prova;"
cn.Open
Set rs.ActiveConnection = cn
rs.Open "articoli", cn, adOpenDynamic, adLockOptimistic
Do Until num = 20000
    rs.AddNew
    rs.Fields("des_art") = "aaa"
    rs.Update
    num = num + 1
    Text1 = num
    Text1.Refresh
    Loop
End Sub
Private Sub Command3_Click()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, num As Integer
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.ConnectionString = "DSN=prova;"
cn.Open
Set rs.ActiveConnection = cn
rs.Open "articoli2", cn, adOpenDynamic, adLockOptimistic
Do Until num = 20000
    rs.AddNew
    rs.Fields("des_art") = "aaa"
    rs.Update
    num = num + 1
    Text1 = num
    Text1.Refresh
    Loop
End Sub

 wrote in message
news:aekb0a$446$
1...@lacerta.tiscalinet.it

Come hai fatto andrebbe bene, solo che non hai annullato
la precedente impostazione, come mai...???
Quando usi i Recordset li apri, li usi e poi li chiudi, e li annulli.
La stessa cosa dicasi per la CONNECTION, perchè apri ogni volta una
Connection
allungando i tempi di accesso al DB..???
Ti conviene aprire una CONNECTION a livello di MODULO Pubblica, e 
lasciarla sempre aperta, a meno di gestione differente che dipende da
te.
In un Modulo inserisci una Funzione che esegui all'apertura del DB:
Dim cn As ADODB.Connection
Public function DOConnect() 
  Set cn = New ADODB.Connection
  cn.ConnectionString = "DSN=prova;"
  cn.Open
End
 
 Private Sub Command1_Click()
 Dim rs As ADODB.Recordset, num As Integer
 Set rs = New ADODB.Recordset
 num = 0
 Set rs.ActiveConnection = cn
 rs.Open "articoli", cn, adOpenDynamic, adLockOptimistic
 
 Do Until num = 20000
     rs.AddNew
     rs.Fields("des_art") = "aaa"
     rs.Update
     num = num + 1
     Text1 = num
     Text1.Refresh
 Loop
 rs.Close
 set RS=nothing
 End Sub
 
 Private Sub Command3_Click()
 Dim rs As ADODB.Recordset, num As Integer
 Set rs = New ADODB.Recordset
 Set rs.ActiveConnection = cn
 rs.Open "articoli2", cn, adOpenDynamic, adLockOptimistic
 Do Until num = 20000
     rs.AddNew
     rs.Fields("des_art") = "aaa"
     rs.Update
     num = num + 1
     Text1 = num
     Text1.Refresh
  Loop
  rs.Close
  set RS=nothing
  End Sub
Ciao @Alex.


Si pero' a me serve tenere aperti i 2 recordset nello stesso momento,
perche' un utente aggiorna il primo e l'altro aggiorna il secondo
Se eseguo il ciclo nello stesso momento con 2 tabelle diverse mi  blocca
tutto.
E poi mi interessa farlo con DAO tipo:
Private Sub Command1_Click()
Dim db As Database, Rs As Recordset, num As Integer
Set db = OpenDatabase("C:\Documents and
Settings\walter1\Documenti\download\db1_97.mdb")
Set Rs = db.OpenRecordset("articoli", dbOpenDynaset)
num = 0
Do Until num = 20000
    Rs.AddNew
    Rs.Fields("des_art") = "aaa"
    Rs.Update
    num = num + 1
    Text1 = num
    Text1.Refresh
    Loop
End Sub
Private Sub Command2_Click()
Dim db As Database, Rs As Recordset, num As Integer
Set db = OpenDatabase("C:\Documents and
Settings\walter1\Documenti\download\db1_97.mdb")
Set Rs = db.OpenRecordset("articoli2", dbOpenDynaset)
num = 0
Do Until num = 20000
    Rs.AddNew
    Rs.Fields("des_art") = "aaa"
    Rs.Update
    num = num + 1
    Text2 = num
    Text2.Refresh
    Loop
End Sub
Questo e' in realta' cio' che mi serve
Possibile che access blocca anche la tabella che non sta usando?

 Possibile che access blocca anche la tabella che non sta usando?
Non è corretto, ma credo sia frutto di un'errata gestione dei RECORDSET.
Se ottimizzi, correggi, l'uso dei RECORDSET forse.....!!!
Ricordati che su evento CLOSE della Form devi in ogni caso liberare
la memoria dai 20000 records che hai impegnato....!!!


Ho fatto delle prove e ho risolto da solo. Gazie mille per le tue
risposte.CIAOoo