Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error 545

Estas en el tema de Error 545 en el foro de Visual Basic clásico en Foros del Web. Que tal como estan bueno aqui de nuevo con un problema tengo la siguiente consulta Código: Set RecSQL = New ADODB.Recordset RecSQL.CursorLocation = adUseClient RecSQL.Open ...
  #1 (permalink)  
Antiguo 10/06/2008, 09:58
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
Error 545

Que tal como estan bueno aqui de nuevo con un problema tengo la siguiente consulta
Código:
Set RecSQL = New ADODB.Recordset
    RecSQL.CursorLocation = adUseClient
    RecSQL.Open "SELECT * FROM pacientes", BD, adOpenStatic, adLockOptimistic
    ' asignamos a los TextBox el valor de cada campo (en la tabla tienen que estar en el
    ' mismo orden, es decir el primer campo (0) será fecha, el segundo nombre, etc..)
    Dim i As Integer
    For i = 0 To 18
        Set Text1(i).DataSource = RecSQL
        Text1(i).DataField = RecSQL(i).Name
    Next i

    ' agregamos al combo todos los apellidos (que es el campo 2) y su posición en
    ' el recordset
    With RecSQL
        .MoveFirst
        Do Until .EOF
            Combo1.AddItem .Fields(3)
            Combo1.ItemData(Combo1.NewIndex) = .AbsolutePosition
            .MoveNext
        Loop
    End With
Y en esta linea me marca error
Text1(i).DataField = RecSQL(i).Name

Me dice "Run-time 545
Unable to bind to field or DataMember:"id"
y bueno le agrego a esa intruccion el id para que quede de esta manera:
Text1(i).DataField = RecSQL(i).Name = "id"

y Me marca el error
Unable to bind to field or DataMember:'True'

Gracias por sus respuestas

Saludos
  #2 (permalink)  
Antiguo 11/06/2008, 00:32
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Error 545

Hola,

en diseño, o en cualquier otro procedimiento, ¿tienes el control Text(i) enlazado?

Es decir, ¿tiene algo en las propiedades DataSource y/o DataField?

  #3 (permalink)  
Antiguo 11/06/2008, 09:06
 
Fecha de Ingreso: abril-2008
Mensajes: 281
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Error 545

Hola Avellaneda, pues no ni en diseño ni en nungun otro procedimiento he ocupado el datasource o datafield, solo tengo procedimiento en los q me bloquea los textbox para su escritura es decir

Código:
text1(1).Enabled = False
Es el unico procedimiento en los que ocupo los textbox junto con el de agregar registros. Y en diseño ya lo revise y no tengo nada enlazado.

Saludos y gracias por la ayuda
  #4 (permalink)  
Antiguo 12/06/2008, 01:01
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Error 545

Visual Basic no compara de izquierda a derecha, por lo que la línea

Text1(i).DataField = RecSQL(i).Name = "id"

se lee de derecha a izquierda y lo que hace realmente es comparar RecSQL(i).Name = "id" y el resultado con Text1(i).DataField. Como probablemente RecSQL(i).Name valga "id", esa comparación es True (boolean) e intenta asignarla a la propiedad DataField, que espera una cadena. Así que tendrías que hacerlo en dos pasos

Por otra parte, RecSQL no es un array, así que no puedes asignarle un índice. Supongo que quieres hacer algo así:

Text(i).DataField = RecSQL.Fields(i).Name

La propiedad Fields contiene un array de objetos Field, que tiene entre otras las propiedades Name (nombre del campo) y Value (valor en el registro seleccionado).
  #5 (permalink)  
Antiguo 12/06/2008, 01:04
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Error 545

Espera, Avellaneda va por mejor camino que yo.

No puedes utilizar la propiedad DataField si no estableces antes DataSource.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:05.