¿Ayuda con programacion de Vba Excel?
Hola que tal gente de yahoo, tengo un problema de programacion en visual, el caso es el sgte. tengo una tabla que realizo un filtro automatico con una macro, la cual me lanza un resultado de X datos, el punto es que quisiera mostrar en MsgBox la primera celda hallada con ese filttro. gracias.
3 respuestas
- hace 5 años
- aemLv 7hace 5 años
Hola:
Por lo general, lo que se hace es conectar mediante un objeto de conexion (ADO) VBasic con la base de datos, y la base de datos no hace nada mas que contestar a lo que requiere el programa, el que mediante una consulta SQL pregunta lo que quiere y filtra y el resultado se puede usar luego para cargar un combo, un texto, una grilla o lo que sea.
Si esta usando VB6, la conexion necesita declararse asi
En el menú proyecto , haga clic en Agregar referencia.
En la ficha COM , haga clic en Microsoft ActiveX Data Objects 2.x Libraryy, a continuación, declaramos estas variables publicas y estas funciones...
Public cn As New ADODB.Connection
Public rsc1 As New ADODB.Recordset
luego se abre la conexion con una base de datos, access 2003 en este caso
Public Sub ini()
If cn.State = 1 Then cn.Close
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Inmobiliaria.mdb;Persist Security Info=False"
End Sub
Public Sub fin()
cn.Close
End Sub
luego, en el formulario abris con la consulta sql el recordset (que es commo un buffer ida y vuelta, lleva a la base la consulta y se carga con el resultado de la consulta
ini '//abro la conexion
rsc1.Open "Select IdCliente from Cliente order by IdCliente Where Nombre = " & textbox2, cn, adOpenStatic, adLockOptimistic
y por ultimo, pones el resultado en tu caja de texto
textbox1=rsc1.IdCliente
rsc1.close '//cierro el recordset
fin '//cierro la conexion
En Visual Basic 2008 y posteriores
Este artículo muestra diferentes maneras de crear objetos de conexión de ActiveX Data Objects (ADO) y el conjunto de registros en Visual Basic NET. Tenga en cuenta que estos objetos son objetos ADO, no objetos ADO.NET.
volver al principio
Crear objetos Recordset y Connection de ADO en Visual Basic. NET
Cree un nuevo proyecto de aplicación para Windows de Visual Basic. NET. Se creará Form1 de forma predeterminada.
En el menú proyecto , haga clic en Agregar referencia.
En la ficha COM , haga clic en Microsoft ActiveX Data Objects 2.x Libraryy, a continuación, haga clic en Seleccionar.
Agregue el código siguiente a la sección de declaraciones generales de Form1:
Dim cn As New ADODB.Connection()
Dim rs As New ADODB.Recordset()
Dim cnStr As String
Dim cmd As New ADODB.Command()
El código siguiente muestra dos métodos diferentes para abrir un objeto Connection de ADO. Cada uno de estos métodos conectarse a una base de datos Pubs de Microsoft SQL Server y se pueden agregar al evento Load de Form1.
Nota Id. de usuario < nombre de usuario > debe tener permisos para realizar estas operaciones en la base de datos.
' Modify this connection string to reflect your server and logon information.
' Store the connection to a variable to be used throughout this example.
cnStr = "Provider=SQLOLEDB;Initial Catalog=Pubs;Data Source=servername;" & _
"User ID=<username>;Password=<strong password>;"
' 1. Connect through the Connectionstring property.
cn.ConnectionString = cnStr
cn.Open()
cn.Close()
' 2. Connect through the Connection object's Open method.
cn.Open(cnStr)
cn.Close()
El código siguiente muestra tres formas diferentes para abrir un objeto Recordset de ADO. Cada uno de estos métodos conectarse a una base de datos Pubs de Microsoft SQL Server y se pueden agregar al evento Load de Form1:
' 1. Open Recordset through the Execute method of the Connection object.
cn.Open(cnStr)
rs = cn.Execute("Select * from Authors")
rs.Close()
cn.Close()
' 2. Open Recordset through the Command.Execute method.
cn.Open(cnStr)
cmd.ActiveConnection = cn
cmd.CommandText = "Select * from Authors"
rs = cmd.Execute
rs.Close()
cn.Close()
' 3. Open Recordset without a Connection object.
rs.Open(""Select IdCliente from Cliente order by IdCliente Where Nombre = " & textbox2, cnStr)
textbox1=rs.IdCliente
rs.Close()
' Release the objects to free memory.
rs = Nothing
cn = Nothing
Modifique la conexión de cadena donde sea necesario para conectarse correctamente a su SQL Server.
Presione la tecla F11 para recorrer el código y observar las diferentes formas de crear un objeto Connection o Recordset .
Si la consulta ya esta hecha en la base de datos, y se considera que no vá a tener que ser cambiada, se puede usar el nombre de la consulta de la base de datos y traer rsc1(0) ó rs(0) que es la columna inicial que trae el recorset para cargar el texto, como la consultas suelen depender de muchas variantes, y pueden cambiar con las necesidades, es preferible hacerla desde el formulario para no andar manoseando la base de datos.
Saludos
Antonio
- Anónimohace 5 años
Ni idea dame mejor respuesta hoy por mi mañana por ti :v
........|¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨…...
........| .............Zeldars .....|||"|""\__
........|__________________|||_|___|)<
........!(@)'(@)""""**!(@)(@)****!(@)