Saludos y gracias de ante mano Estoy programando con Visual Basic 6.0, ya tengo bastantes formularios (al rededor de 50). La Base de datos esta en Access 2000 y utilizo el ODBC de Access para accesarla, conforme aumento más formularios con sus respectivos dbgrid, Adodc, combobox, etc. Cuando trato de asignarle al un comboBox por ejemplo una tabla me sale el siguiente mensaje: [microsoft][ODBC microsoft] Demasiados datos de usuario"
Por favor como puedo evitar este mensaje... Gracias.. CCC
Creo que lo que te esta ocurriendo, es que realizas demasiadas conexiones a la base de datos. Para resolver esto, lo más conveniente, es que utilices una sola conexión al abrir la aplicación. Y que esta conexión la mantengas abierta, mientras se este ejecutando la aplicación. Dale un nombre y realiza las llamadas a los recordset con ese nombre de conexión. En cualquier caso, optimiza a las mínimas conexiones. Posteriormente, puedes abrir los recordset que sean necesarios, para cada formulario, y eso si, cuando rescates los registros para los combobox, o cuando hayas terminado un proceso en concreto ciérralos (. Close) Esto hará tu aplicación más consistente y ganaras en recursos haciendo más rápidos los procesos. Te adjunto, la ayuda del objeto connection de ADO, para que la eches un vistazo. Connection, objeto Representa una conexión abierta con un origen de datos. Comentarios El objeto Connection representa una sesión única con un origen de datos. En el caso de un sistema de base de datos cliente-servidor, puede ser equivalente a una conexión de red real con el servidor. Según la funcionalidad que admita el proveedor, puede que algunas colecciones, métodos o propiedades del objeto Connection no estén disponibles. Con las colecciones, métodos y propiedades del objeto Connection, puede hacer lo siguiente: Configurar la conexión antes de abrirla con las propiedades ConnectionString, ConnectionTimeout y Mode. ConnectionString es la propiedad predeterminada del objeto Connection. Establecer la propiedad CursorLocation para invocar el Servicio de cursores para OLE DB, que acepta actualizaciones por lotes. Establecer la base de datos predeterminada de la conexión con la propiedad DefaultDatabase. Establecer el nivel de aislamiento de las transacciones abiertas en la conexión con la propiedad IsolationLevel. Especificar un proveedor de OLE DB con la propiedad Provider. Establecer, y más tarde terminar, la conexión física con el origen de datos con los métodos Open y Close. Ejecutar un comando en la conexión con el método Execute y configurar la ejecución con la propiedad CommandTimeout. Nota Para ejecutar una consulta sin utilizar el objeto Command, pase una cadena de consulta al método Execute del objeto Connection. Sin embargo, requerirá un objeto Command cuando desee que el texto del comando persista y volver a ejecutarlo, o cuando utilice parámetros en la consulta. Administrar transacciones en la conexión abierta, incluso transacciones anidadas si el proveedor las acepta, con los métodos BeginTrans, CommitTrans y RollbackTrans, y la propiedad Attributes. Examinar los errores devueltos por el origen de datos con la colección Errors. Leer la versión de la implementación de ADO usada con la propiedad Version. Obtener información del esquema de la base de datos con el método OpenSchema. Puede crear objetos Connection de forma independiente de cualquier objeto definido previamente. Se pueden ejecutar comandos o procedimientos almacenados como si fueran métodos nativos del objeto Connection. Para ejecutar un comando, asígnele un nombre con la propiedad Name del objeto Command. Establezca la propiedad ActiveConecction del objeto Command a la conexión. A continuación, emita una instrucción en la que el nombre del comando se utilice como si fuera un método del objeto Connection, seguido de los parámetros apropiados, y de un objeto Recordset, si el comando devuelve filas. Establezca las propiedades del objeto Recordset para personalizar el conjunto de registros resultante. Por ejemplo: Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rst As New ADODB.Recordset ... cnn.Open "..." cmd.Name = "yourCommandName" cmd.ActiveConnection = cnn ... 'El nombre del comando, cualquier parámetro, y un Recordset opcional. cnn.yourCommandName "parameter", rst Para ejecutar un procedimiento almacenado, emita una instrucción en la que el nombre del procedimiento almacenado se utilice como si fuera un método del objeto Connection, seguido de los parámetros apropiados. ADO intentará adivinar los tipos de los parámetros. Por ejemplo: Dim cnn As New ADODB.Connection ... 'El nombre del procedimiento almacenado y sus parámetros. cnn.sp_yourStoredProcedureName "parameter"