Domanda

Ho un Access 2003 ADP Microsoft, che utilizza una forma legata "principale" con diversi subforms continuo in stile rilegati. Tutti utilizzano record disconnessi tramite una classe di supporto.

Molti utenti hanno notato lo stesso comportamento strano: aggiungono / modificare un record nella sottomaschera continua, lasciano il record (commettere il modifica sulla Recordset), si bloccano il computer (Ctrl + Alt + Canc), si sblocca il computer, tornano alla forma, dopo circa 5 secondi sfarfalla e tornare allo stato non modificato originale.

Sono stato in grado di riprodurre questo seguendo la procedura descritta sopra, inoltre, dopo aver effettuato un cambiamento nella mia forma, legato a un recordset disconnesso, sono andato a SQL Server e cambiato un valore. Dopo la routine del computer blocco / sblocco, viene visualizzata la sfarfallio forma e rinfresca, e il nuovo valore ho appena entrato in SQL Server.

E 'come se, dopo circa 5 secondi, il mio Recordset disconnesso sta ricollegando (su di essa la propria) e di riottenere il Recordset.

Mi rendo conto che non sto dando un sacco di informazioni qui, ma nessuno ha incontrato un problema con il set di record disconnessi riconnessione e di riottenere? O almeno avere un idea di dove potrei iniziare il debug?

Ho la sceneggiatura ADP e SQL per creare il database se qualcuno vorrebbe ricreare questo nel loro ambiente.

Ecco come sto creando il Recordset disconnesso:

Dim cnn                 As ADODB.Connection
Dim stmTest             As ADODB.Stream

Set cnn = New ADODB.Connection
cnn.Open Application.CurrentProject.AccessConnection.ConnectionString

' Create recordset and disconnect it.
Set mrsTest = New ADODB.Recordset
mrsTest.CursorLocation = adUseClient
mrsTest.Open "SELECT * FROM [tblChild] WHERE ParentID = 1" _
    , cnn _
    , adOpenStatic, adLockBatchOptimistic
Set mrsTest.ActiveConnection = Nothing

cnn.Close
Set cnn = Nothing

' Copy recordset to stream in memory.
Set stmTest = New ADODB.Stream
stmTest.Open
mrsTest.Save stmTest, adPersistADTG

' Bind form to disconnected recordset.
Set Me.Recordset = mrsTest

' Open a copy of the recordset from the stream.
Set mrsTest = New ADODB.Recordset
stmTest.Position = 0
mrsTest.Open stmTest
È stato utile?

Soluzione

  

Volevo transazione come l'elaborazione (Salva e Annulla) senza   le tabelle di essere bloccati, nel mio sistema utenti multipli. per continuo   forme nell'accesso al lavoro, devono essere legati a un Recordset.

È possibile utilizzare moduli / sottomoduli legati alle tabelle temporanee per ottenere proprio questo effetto.

http://www.access-programmers.co. uk / forum / showthread.php? t = 206862

Steve

Altri suggerimenti

Probabilmente un po 'offtopic, ma questo è il codice interessante. Non ho mai pensato di lavorare con set di dati di questo tipo. C'è un motivo particolare per cui si utilizzano questi 'gruppi di dati scollegati'?

Anche io sperimentato con lo stesso codice di un po 'indietro e ha avuto la stessa esperienza.

Ecco il mio modo di vedere il motivo per cui il set di record si riconnette al server ...

Se si controlla record del modulo (dopo il legame il set di record) vedrete la vostra istruzione SQL messi lì come valore. Dal momento che è ADP il modulo è sempre legato al server. Pertanto, quando il modulo viene aggiornato il recordset aggiorna anche.

Se si trova una soluzione a questo si prega di inviare!

Grazie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top