Hola quisiera saber como poders abrir con ado una base de datos pero en una consulta sql a la cual le tengo que pasar un parámetro como se hace eso y ademas después asignarlo a una data grid Si eso lo podes hacer en un control adodc mejor me seria más fácil y así me decís como ao par actualidar los cambios en un control adodc echos en el programa chau
Bien, empecemos por el principio: Lo primero que hay que hacer es ir al menu proyecto -> referencias Y tildar la opción ADO(access data objects...) Luego en la sección de declaraciones de tu formulario o en un módulo (común) poner lo siguiente: Set db as adodc.connection Set rs as adodc.recordset Con el nombre que quieras, yo lo voy a trabajar con db y rs. Luego teniendo la dirección física de la base de datos y los datos de usuario (el nombre y el password) se arma el dsn, o sea, la cadena de conexión. Por ejemplo: dsn="DRIVER={Microsoft Access Driver (*.mdb)];DBQ=C:\mibase.mdb" o si lo tenés como odbc puede ser algo así: dsn="db=mibase; uid=nombre_usuario; pwd=password" Bien, cuando tengamos listo este paso hacemos lo siguiente: Db. Open dsn Esto carga la base en el objeto db. Lo único que resta es ejecutar alguna sentencia de selección con el rs relacionado al db o sea: Rs. Open "SELECT * FROM Tabla1", db Esto carga en el rs los resultados de la búsqueda(en nuestro caso como no puse ninguna condición nos carga toda la tabla "Tabla1") Cuando tengas esto para cargarlo en un control datagrid hacés esto: datagrid1.datasource=rs Esto debería funcionar bien (no lo probé) Para actualizar los cambios, yo lo haría cada vez que se hace un cambio con la instrucción de acción "UPDATE" a través de db. Execute No te recomiendo usar el control OCX Adodc que es como el Data1 porque no es nada poderoso, solo te permite navegar la base de datos registro por registro, pero no podes filtrar ni modificar! Por esto te expliqué como usar las dll's del adodb. Espero te sea útil este material, de cualquier modo te recomiendo que busques en internet acceso a bases de datos desde asp que se usa ado, sólo para las consultas de acción y de selección, hay una página que tiene un buen resumen que es : www.elguruprogramador.com.ar en la sección sql. Atentamente. Manuel Fernández.
Hola que tal quisiera que me aclararas el tema de la asignación del recordset a la datagrid porque yo en un soft que hice en algunas tablas me salta el error de que los marcadores de columnas no existen o no están definidos en la data grid por que es eso
Probablemente no tengas igual numero de columnas en el datagrid y en el recordset! Es lo único que se me ocurre. Atentamente. Manuel Fernández
Entonces que tengo que hacer para que me coincida eso tengo que asignarle columnas al recordset o al datagrid y como se hace
Al datagrid le tenés que asignar el número de columnas que tiene el recordset. Atentamente. Manuel Fernández.
Mostrame como ago para asignarles las columnas al data grid
Primero tenés que obtener el número de columnas del recordset, luego con ese valor hacés un bucle. Supongamos que el valor es n. For e = 0 to n - 1 DataGrid1.Columns.Add Next e Eso es todo. Acá te pongo una info del msdn! Espero que te sirva. Add (Método, colecciones Columns, SelBookmarks y Splits) Agrega una nueva columna a la colección Columns, un nuevo marcador a la colección SelBookmarks o una nueva división de la colección Splits del control DataGrid. No acepta argumentos con nombres. Sintaxis Objeto. Add índiceColumna Objeto. Add marcador La sintaxis del método Add consta de las siguientes partes Parte Descripción Objeto Unaexpresión de objeto que da como resultado un objeto de la lista Se aplica a. ÍndiceColumna Requerido. Un entero que especifica si el nuevo objeto Column o Split se inserta en la colección Columns o en la colección Splits, como se describe en Valores. Marcador El marcador que se va a agregar a la colección. Valores Los valores admitidos para índiceColumna son: Valor Descripción 0 Inserta la nueva columna como columna situada más a la izquierda. Count Si la parte índiceColumna es el mismo que el valor de la propiedad Count, la nueva columna se inserta como la columna situada más a la derecha. N Inserta la columna nueva a la izquierda de la columna número n de la colección Columns. La columna número n y todas las columnas siguientes se incrementan apropiadamente. Comentarios El método Add inserta un nuevo objeto Column en la colección Columns basándose en la parte índiceColumna. Las columnas nuevas se agregan con su propiedad Visible establecida a False y todas las demás propiedades a sus valores predeterminados. Inicialmente, las columnas nuevas no están enlazadas porque su propiedad DataField es una cadena de longitud cero (""). La propiedad Count de la colección Columns se incrementa para reflejar la columna nueva. Importante Si anteriormente ha eliminado una columna mediante el método Remove, después de agregar nuevas columnas quizá necesite actualizar la pantalla con los métodos Rebind y Refresh. Esto hace que el control DataGrid reconstruya su matriz interna de diseño de columnas para reflejar correctamente el verdadero estado del control. Use el método Add para agregar marcadores a la colección SelBookmarks. Una vez que se ha agregado un marcador a la colección SelBookmarks, aparece seleccionado en el control DataGrid. Atentamente. Manuel Fernández.