Modificar consultas de sql desde vb6 usando dao

Estoy trabajando con VB6 y sql server 2000.
¿Es posible modificar registros de una consulta utilizando
el control o el objeto Data de visual basic?
Se que desde una control adodc si que se puede pero desde un control
data, no me deja. ¿Existe alguna forma o esto es una limitación del control y el objeto?

1 Respuesta

Respuesta
1
Y la única forma que encontré de solicionarlo fijándome el estado de la conexión, y si estaba abierta, la cierro y vuelvo a realizar la conexión
Hola :
Probé lo que me dijiste pero no funciona a parte que no le encontré mucho sentido.
¿Puedes mandarme un ejemplo para ver si entiendo mejor lo que me quieres decir?
Gracias.
Mi ejemplo es con ado.
Tengo 2 procedimientos uno que crea la abre la base de datos
y otro que crea la conexión con las tablas que yo necesito.
Esto lo usaba en una búsqueda de pacientes. Pero cuando por ejemplo hacia una búsqueda fallida y no se encontraba nadie. Al probar con otro nombre me daba el error de que no se puede realizar esta operación si el objeto esta abierto.
Para solucionarlo me fije donde necesitaba cerrarlo para que me permita volver a realizar la consulta.
Public Sub AbrirAdo()
If BDado.State = adStateclose Then
With BDado
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "miBaseDedatos.mdb"
.CursorLocation = adUseClient
End With
Else
MsgBox "ya esta abierto"
End If
End Sub
Public Sub ConectarAdo(mSQL As String, adoType As CursorTypeEnum)
MsgBox "rsADO.State = adStateClosed - " & adStateClosed
rsADO.CursorLocation = adUseClient
rsADO.Open mSQL, BDado, adoType, adLockOptimistic
'para ver los adotype reescribe la coma adelante del adotype en la sentencia open
End Sub
Así cada vez que yo volvía a hacer la consulta si la base de datos estaba abierta me aparecía este mensaje, entonces yo ya sabia que debía cerrarla.
Por ejemplo yo también podía salir de esta pantalla para ver los datos de uno de los resultados del datagrid de forma más completa, al volver se me producía el mismo error, porque no había cerrado la base, al abrir el otro formulario.
No se si me explico, fíjate cual es el error que te aparece, cópialo a mano si es necesario y mándamelo. Yo se que me apareció millones de veces pero no recuerdo como.
Te repito, supongo que debe ser un problema con la base de datos, porque si no la cerras permanece abierta y no se puede volver a realizar la consulta sin antes cerrarla.
Un saludo desde Rosario, Argentina... Ezequiel
No dudes en preguntar todas las veces que sea necesario.
Buenas :
Ante todo, gracias por responderme pero yo quería una solución con Dao y no con ADO.
Con ADO ya sabia se como iba. Si sabes como va con Dao, t agradecería que me mandaras yu opinión.
Un saludo.
¿Cuándo decís modificar registros de una consulta estas hablando de editar los registros o de hacer una nueva consulta?
Para editar registros..
Do While Not Agenda.EOF
Agenda.Edit
Agenda!Zona = 1
Agenda!OTRO = 'lo que vos quieras / codigo'
Agenda.Update
Agenda.MoveNext
Loop
sino tambien usando sentencias de sql
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN
WHERE Criterio;
Buenas :
Me refiero a editar los registros de la consulta y realizar modificaciones sobre ella.
No funciona lo que me mandast porque ya lo probé en su día y no iba. Probé ahora, y tampoco va.
Da el siguiente error :
La operación debe usar una consulta actualizable
Cuando la consulta esta guardada
Yo hago las actualizaciones tabla por tabla porque siempre me queda algún campo sin valor sino...
¿Qué tipo de recordset usaste? Tendrías que usar dynaset
Lamento no poder darte la respuesta precisa.
Buenas :
Uso Dynaset. (Uso las mismas propiedades de si me fuera a conectar a una tabla para editar sus datos pero en vez de una tabla, pues una consulta)
OK entonces hace la actualización tabla por tabla así podes mantener mejor control de lo que estas haciendo...
Abrí recordset de las tablas que tienes en la consulta y modifica las que cambiaron.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas