Pregunta

Tengo un ADP Microsoft Access 2003, que utiliza una forma "principal" atado con varios subformularios de estilo continua consolidados. Todos ellos utilizan registros desconectados a través de una clase de ayuda.

Varios usuarios han notado el mismo comportamiento extraño: que añadir / editar un registro en el subformulario continua, dejan el registro (la comisión de la edición al conjunto de registros), que bloquean el ordenador (Ctrl + Alt + Supr), que desbloquear la computadora, que se remontan a la forma, después de 5 segundos parpadea y volver al estado original sin editar.

He sido capaz de reproducir esta siguiendo los pasos anteriores, además, después de hacer un cambio en mi forma, unido a un conjunto de registros desconectado, fui a SQL Server y ha cambiado un valor. Después de la rutina de la computadora de bloqueo / desbloqueo, se muestra los parpadeos de forma y refresca, y el nuevo valor que acaba de entrar en SQL Server.

Es como si después de 5 segundos, mi registros desconectado está reconectando (por sí mismo) y volver a consultar el conjunto de registros.

Me doy cuenta de que no estoy dando mucha información aquí, pero ¿alguien ha encontrado un problema con los registros desconectados volver a conectar y volver a consultar? O por lo menos tener una idea de donde podría empezar a depurar?

Tengo el guión ADP y SQL para crear la base de datos si alguien quisiera recrear esto en su entorno.

Así es como estoy creando el conjunto de registros desconectado:

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
¿Fue útil?

Solución

  

quería transacción como procesamiento (Guardar y Cancelar) y sin   las tablas que se están bloqueadas, en mi sistema de múltiples usuarios. Por continua   formas de acceso al trabajo, éstos deben vincularse a un conjunto de registros.

Puede utilizar formas / subformularios con destino a las tablas temporales para lograr precisamente este efecto.

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

Steve

Otros consejos

Probablemente un poco offtopic, pero esto es un código interesante. Nunca he pensado en trabajar con conjuntos de datos de este tipo. ¿Hay alguna razón particular por la que utiliza estos conjuntos de datos 'desconectados'?

Yo también experimentado con el mismo código de un tiempo atrás y tenía la misma experiencia.

He aquí el camino veo por qué el conjunto de registros se vuelve a conectar al servidor ...

Si marca recordsource de su forma (después de la unión del conjunto de registros), verá la instrucción SQL colocado allí como el valor. Puesto que se ADP su formulario siempre está ligado al servidor. Por lo tanto cuando la forma refresca, el conjunto de registros se actualiza también.

Si encuentra una solución a este por favor, puesto!

Gracias.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top