** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Visual Basic Clásico (VB3...VB6)
  Mensajes nuevos Mensajes nuevos RSS - Código para conexión a MSFlexGrid1
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCódigo para conexión a MSFlexGrid1

 Responder Responder
Autor
Mensaje
Roberto Carlos Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Diciembre/2009
Localización: Bolivia
Estado: Sin conexión
Puntos: 105
Enlace directo a este mensaje Tema: Código para conexión a MSFlexGrid1
    Enviado: 25/Mayo/2010 a las 14:42
Hola a todos
 
una persona del foro me paso este codigo para conectarme a un DataGrid
 
 
Set rs = New ADODB.Recordset
'SQL$ = "select * From SubFormularioLanzamientodeProducción"
'With rs
'.CursorLocation = adUseClient
'.CursorType = adOpenKeyset
'.LockType = adLockOptimistic
'.Open SQL$, cn, , , adCmdText
'End With
'Set DataGrid1.DataSource = rs

Ahora yo estube queriendo usar este codigo para conectar a un MSFlexGrid cambie la última linea

Set DataGrid1.DataSource = rs por

Set MSFlexGrid1.DataSource = rs

y me sale un error

Error 91 en tiempo de ejecucion

Variable de Tipo Object o la variable de Bloque With no esta establecida

Ya busque por donde pero no se me ocurre una solucion, lo que pasa es que quiero cambiar a MSFlexGrid pues en DataGrid segun he leido no se  puede pasar a otro campo con enter

 

Gracias y quedare atento

 

roberto
Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 25/Mayo/2010 a las 18:16
Así como has leído la información del DataGrid, deberás buscar y leer la información del MsFlexGrid para saber cómo se le agrega el origen de los datos.
 
Aunque yo diría que ese control no tiene esa propiedad que estás intentando usar:
 
 
Así que tendrás que elegir: DataGrid y no usar el Enter (o emularlo de alguna forma), o MsFlexGrid y "currarte" el agregar los datos:
 
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
Roberto Carlos Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Diciembre/2009
Localización: Bolivia
Estado: Sin conexión
Puntos: 105
Enlace directo a este mensaje Enviado: 10/Junio/2010 a las 21:41
Listo Patxi Saenz
 
conseguir cargar con un MSFlexgrid la base de datos solo que no consigo agregar datos mediante el MSFlexgrid, o es que acaso no se puede mi codigo es este:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
Private Declare Sub InitCommonControls Lib "Comctl32" ()
 
' -- Variable para la conexión ADO
Dim cnn As Connection
Private Sub Command1_Click()
'Call Cargar_MsFlexGrid(cnn, "Select * From SubFormularioLanzamientodeProduccion", MSHFlexGrid1)
'Call Cargar_MsFlexGrid(cnn, "Select * From SubFormularioLanzamientodeProduccion", MSFlexGrid1)
End Sub
Private Sub Form_Initialize()
' -- Evitar diálogos de error del sistema
    Call SetErrorMode(2)
    Call InitCommonControls
    Call Cargar_MsFlexGrid(cnn, "Select * From SubFormularioLanzamientodeProduccion", MSFlexGrid1)
End Sub
Private Sub Form_Load()
On Error GoTo Error_Handler
      
    ' -- Crear nuevo objeto Connection
    Set cnn = New Connection
    With cnn
        ' -- Cadena de conexión ( indicar la ruta de la base de datos )
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= G:\Cobra.mdb;Persist Security Info=False"
        .CursorLocation = adUseClient
        ' -- Abre la conexión
        .Open
    End With
      
    Command1.Caption = " Cargar Flex Grid "
      
    ' -- Errores -----------------------------------------------
    Exit Sub
Error_Handler:
MsgBox Err.Number & " " & " Error " & Err.Description, vbCritical
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Not cnn Is Nothing Then
       If cnn.State = adStateOpen Then cnn.Close
       Set cnn = Nothing
    End If
End Sub
Private Sub Cargar_MsFlexGrid(cn As Connection, Consulta_SQL As String, FlexGrid As Object)
On Error GoTo Error_Handler
      
    'Variables para el Recordset, _
     El campo de la base de datos _
     El dato actual y un array para los anchos de columna
    Dim rst             As Recordset
    Dim Campo           As Field
    Dim Dato            As String
    Dim n               As Long
    Dim arrColWidth()   As Long
      
    ' -- Crear Nuevo recordset
    Set rst = New Recordset
    Me.MousePointer = vbHourglass
    With FlexGrid
        ' -- Deshabilitae el redibujado del control para que la carga sea mas veloz
        .Redraw = False
        ' -- Abre el recordset
        rst.Open Consulta_SQL, cn
        ' -- Redimensiona el array a la cantidad de columnas
        ReDim arrColWidth(1 To rst.Fields.Count)
          
        Dato = vbNullString
        n = 1
        ' -- Recorre los campos de la tabla
        For Each Campo In rst.Fields
            ' -- almacena el ancho de los campos
            Dato = Dato & Campo.Name & vbTab
            arrColWidth(n) = TextWidth(Campo.Name & "  ")
            n = n + 1
        Next
          
        .FormatString = Left(Dato, Len(Dato) - 1)
        .FixedCols = 0
        ' -- Recorre todos los registros del recordset
        While Not rst.EOF
            n = 1
            Dato = vbNullString
            For Each Campo In rst.Fields
                Dato = Dato & Campo.Value & vbTab
                ' -- si el dato NO es un valor nulo ... comprueba
                If Not IsNull(Campo.Value) Then
                    ' si el ancho del dato actual es mayor al de su columna, entonces asigna el nuevo ancho
                    If TextWidth(Campo.Value) > arrColWidth(n) Then
                        arrColWidth(n) = TextWidth(Campo.Value)
                    End If
                End If
                n = n + 1
            Next
            ' -- Agregar la fila al Msflexgrid
            .AddItem Dato
            ' -- Mueve el recordset al siguiente registro
            rst.MoveNext
        Wend
          
        ' -- cierra el recordset y elimina la variable
        On Error Resume Next
            rst.Close
            Set rst = Nothing
        ' -- Eliminar la primer fila vacía
        .RemoveItem 1
        On Error GoTo 0
        ' -- ajusta los encabezados de columna
        For n = 1 To .Cols
            .ColWidth(n - 1) = arrColWidth(n)
        Next
        ' -- Habilitar nuevamente el Repintado del control
        .Redraw = True
        Erase arrColWidth
        Me.MousePointer = vbDefault
    End With
      
    Exit Sub
    ' -- Errores -----------------------------------------------
Error_Handler:
On Error Resume Next
rst.Close
Set rst = Nothing
MsgBox Err.Description, vbCritical
Me.MousePointer = vbDefault
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Por favor si todavia hay algo que pueda yo hacer me orientas O enseñas y lo hago
 
Gracias
roberto
Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 11/Junio/2010 a las 17:05
El MSFlexGrid no está conectado a la base de datos, por lo que todo lo que modifiques en este control, no se reflejará en la base de datos.
 
Así como has recorrido el Recordset para cargar los datos en el control, después tendrás que recorrer el control para actualizar los registros en el Recordset.
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable