No se encontró el elemento en la colección que ...

Siempre!
Te comento lo que quiero hacer.
Resulta que al ingresar un voluntario, no ingreso el número de voluntario porque lo puse como tipo int y lo especifico al campo como columna identidad y con incremeno en 1.
Ahora... Lo que quiero hacer es ingresar este número(almacenado en la tabla) en un text de otro formulario al cargarse el mismo, y me sale el error:
Error '3265' en tiempo de ejecución:
No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.
Este es el código que utilizo
Private Sub Form_Load()
    With rstVoluntarios
          txtNumVolDador = .Fields("NumVoluntario")
    End With
End Sub
Bueno, espero que como siempre, me ayudes a resolver está incógnita.

1 Respuesta

Respuesta
1
Creo que el problema que tienes es que ese código deberías de ponerlo no en el Form Load, sino en el Form. Activate
Mira a ver y si no te funciona vemos otras posibilidades.
Ok. Lo pruebo y te comento como anduvo. Muchas gracias!
Estimado amigo. No se si hoy me levante con el pie indicado pero fui para atrás con el código!
No lo puedo creer. Ahora no me deja guardar.
Me tira el error: Error '13' en tiempo de ejecución. No coinciden los tipos.
Y la linea que me marca como errónea es la del Numero de Documento.
Antes lo tenía en numeric(18,0) y no tenía problemas. Ahora me da problemas y no sé porqué.
Lo cambié a int y también me tira el error. ¿Por qué será?
Te paso el código:
Private Sub cmdGuardar_Click()
Dim ConsultaSql As String
    Dim X As Integer
    Set Base = New ADODB.Connection
    AbrirBase
    Set rstVoluntarios = New ADODB.Recordset
    ConsultaSql = "INSERT INTO Voluntarios("
    'ConsultaSql = ConsultaSql & "NumVoluntario, "
    'ConsultaSql = ConsultaSql & "NumSocio, "
    'ConsultaSql = ConsultaSql & "NumDador, "
    ConsultaSql = ConsultaSql & "ApeVol, "
    ConsultaSql = ConsultaSql & "NomVol, "
    ConsultaSql = ConsultaSql & "FNacVol, "
    ConsultaSql = ConsultaSql & "TipoDocumento, "
    ConsultaSql = ConsultaSql & "NumDocumento, "
    ConsultaSql = ConsultaSql & "DomicilioParticular, "
    ConsultaSql = ConsultaSql & "TelefonoParticular, "
    ConsultaSql = ConsultaSql & "Celular, "
    ConsultaSql = ConsultaSql & "EMail, "
    ConsultaSql = ConsultaSql & "Profesion "
    'ConsultaSql = ConsultaSql & "Tipo_Contribucion "
    ConsultaSql = ConsultaSql & ")values ("
    'ConsultaSql = ConsultaSql & SQLText(txtVoluntario(0).Text) & ", " 'Num Voluntario
    'ConsultaSql = ConsultaSql & Val(Trim(txtVoluntario(1).Text)) & ", " 'Num Socio
    'ConsultaSql = ConsultaSql & Val(Trim(txtVoluntario(2).Text)) & ", " ''Num Dador
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(0).Text) & ", " 'Apellido
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(1).Text) & ", " 'Nombre
    'cambiar por esta:
    ConsultaSql = ConsultaSql & SQLText(DTPFNac.Value) & ", "   'FechaNacimiento
    'Esta línea me daba error:
    'ConsultaSql = ConsultaSql & SQLDate(txtVoluntario(3).Text) & ", "  'FechaNacimiento
    ConsultaSql = ConsultaSql & SQLText(cmbTipoDoc.Text) & ", "  'TipoDocumento
    ConsultaSql = ConsultaSql & SoloNumeros(txtVoluntario(2).Text) & ", " 'NumeroDocumento
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(3).Text) & ", " 'Domicilio
    ConsultaSql = ConsultaSql & SoloNumeros(txtVoluntario(4).Text) & ", " 'Teléfono particular
    ConsultaSql = ConsultaSql & SoloNumeros(txtVoluntario(5).Text) & ", " 'Celular
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(6).Text) & ", " 'E-mail
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(7).Text) & ");" 'Profesión
    'ConsultaSql = ConsultaSql & SQLText(cmbTipoContribucion.Text) & ");"  'Tipo Contribución
    Base.Execute (ConsultaSql)
    MsgBox "Cómo desea ingresar a este Voluntario", vbInformation
    Base.Close
    cmdNuevo.Enabled = True
    cmdGuardar.Enabled = False
End Sub
Muchas gracias como siempre!
Por lo que dices el problema lo debes de tener aquí:
ConsultaSql = ConsultaSql & SoloNumeros(txtVoluntario(2).Text) & ", " 'NumeroDocumento
Yo haría lo siguiente, pon un punto de parada en la linea:
Base. Execute (ConsultaSql)
Cuando el programa pare ahí, en la ventana de inmediato pon lo siguiente:
Print ConsultaSql
Te imprimirá la variable ConsultaSql. Revísala y si quieres cópiala y lanzala directamente en SQL Server.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas