sábado, 12 de mayo de 2007

Enlazar MSHFlexgrid a ADO

En esta ocasion mostrare una aplicacion sencilla que permite enlazar una base de datos SQL Server (Northwind) con el control MshFlexgrid.

Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cad As String
cad = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=FAMILIA"
cn.ConnectionString = cad
cn.Open
rs.Open "select * from Products", cn, adOpenKeyset, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
rs.Close
Set rs = Nothing
End Sub

como vemos el codigo es lo habitual que hacemos cuando nos enlazamos a ADO, hasta aca este pequeño Post un saludo. bye que buena cancion la mejor!!!!!!!!

viernes, 11 de mayo de 2007

Devolver Valores desde el DataGrid

Cuando usamos el control datagrid con una base de datos remota, como SQLServer, se puede alterar la estructura de la tabla. Por ejemplo, se puede agregar un campo a la tabla. En ese caso, se puede invocar al método Rebind para volver a crear la cuadricula con la nueva estructura. se observa que si hemos alterado la distribucion de las columnas de la cuadricula en tiempo de diseño, el control DataGrid intentará volver a crear la distribución actual, incluida cualquier forma vacia, no obstante , podemos obligar a que la cuadricula restablezca todas las columnas si invoca el método ClearFields.

Una vez que estamos conectados a la base de datos , podemos usar el evento del datagrid RowcolChange para mostrar el registro completo.

Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col
End Sub

este codigo nos devuelve en primer lugar el campo en el cual hemos hecho click ademas del numero de columna y su respectivo numero de fila.

Los Métodos CellText y CellValue son útiles cuando se ha dado formato a una columna mediante la propiedad NumberFormat, esta propiedad cambia el formato de cualquier columna que contenga un número, sin cambiar el formato de los datos. Por ejemplo , dada una cuadricula con el nombre ProductId que contiene numeros enteros, el código que aparece abajo hará que datagrid1 muestre los valores en el formato "P-000"

DataGrid1.Columns("ProductID").NumberFormat = "P-000"

si queremos devolver el valor real de la columna usamos el metodo CellValue:

Debug.Print DataGrid1.Columns("ProductId").CellValue(DataGrid1.Bookmark)

bueno hasta aca llegamos , ya me dare tiempo para seguir viendo más comportamientos de este control