Visual Basic 6.0 + Sql Server. Conversión de fechas!

Que tal. Desde ya muchas gracias por formar parte del foro, y espero me puedas ayudar con mi consulta.
Estoy desarrollando un sistema en el cual uno de los campos a llenar es una fecha para lo cual utilizo esta porción de código:
Public Function SQLDate(Fecha) As String
    If Not IsNull(Fecha) Then
        If IsDate(Fecha) Then
            SQLDate = "#" & Format(Fecha, "mm/dd/yyyy") & "#"
        Else
            SQLDate = "Null"
        End If
    Else
        SQLDate = "Null"
    End If
End Function
Cuando lo utilizo con Access no tengo problemas pero al utilizarlo en Sql Server me tira este error:
Error '-2147217900 (80040e14)' en tiempo de ejecución : el nombre #20# no es válido en este contexto. Las expresiones válidas son constantes, expresiones de constantes y, en algunos contextos, varialbes. No se permiten nombres de columna.
(El número 20 que está entre los numerales es el día de la semana de la fecha que quiero ingresar)
Cabe aclarar que el campo fecha de la tabla a la que quiero agregar el campo es de tipo datetime.
Bueno, espero puedas darme una mano.
Desde ya muchas gracias!

1 respuesta

Respuesta
amigo tienes que darle formato a la fecha que estas ingresanso a tu tabla, sql server 2000 ingresa las fecha por YYYY-MM-DD por defecto, entonces en la variable SQLDate, deberia ser asi,  SQLDate = "#" & Format(Fecha, "YYYY/MM/DD") & "#", prueba con eso y me cuentas.
Amigo: Muchas gracias por responder tan rápidamente!
Me sigue tirando el mismo error pero esta vez en vez del mes, me dice que está mal el año. ¿Cuál será el problema?!
Desde ya muchas gracias!
prueba con  SQLDate = "#" & Format(Fecha, "YYYY-MM-DD") & "#", asi es como lo tengo yo en uno de mis proyectos y me funciona, me cuentas como te funciona.
Estimado amigo. La verdad que no se que más hacer. Me sigue tirando los mismos errores.
Te agradezco nuevamente. Si consigo la solución la subo a la plataforma.
Gracias igualmente.
Enviame el código fuente para verlo, y ver si es que hay algún error más arriba en el código.
Bueno amigo. Este es el código fuente. A ver si encontrás el error.
Muchas gracias!
Private Sub cmdGuardar_Click()
Dim ConsultaSql As String
    Dim x As Integer
    Set base = New ADODB.Connection
    AbrirBase
    Set rstvoluntario = 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(1).Text) & ", " 'Apellido
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(2).Text) & ", " 'Nombre
    ConsultaSql = ConsultaSql & SQLDate(txtVoluntario(3).Text) & ", "  'FechaNacimiento
    ConsultaSql = ConsultaSql & Val(cmbTipoDoc.Text) & ", "  'TipoDocumento
    ConsultaSql = ConsultaSql & Val(txtVoluntario(4).Text) & ", " 'NumeroDocumento
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(5).Text) & ", " 'Domicilio
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(6).Text) & ", " 'Teléfono particular
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(7).Text) & ", " 'Celular
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(8).Text) & ", " 'E-mail
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(9).Text) & ", " 'Profesión
    ConsultaSql = ConsultaSql & Val(cmbTipoContribucion) & ");" 'Tipo Contribución
    base.Execute (ConsultaSql)
    base.Close
End Sub
Lo que te aconsejo es que antes de que insertes los datos, le cambies el formato a la fecha de nacimiento, crea una variable con nombre fecha, ahí le pones la opción format, de la siguiente forma.
fecha=format(txtVoluntario(3).text, "YYYY-MM-DD")
y esa variable se la pasas a la linea que tienes como la fecha de nacimiento
ConsultaSql = ConsultaSql & SQLDate(fecha) & ", "  'FechaNacimiento
intenta con esto
Ok. Gracias por la respuesta. En cuanto la pueda chequear te comento como anduvo. Muchas gracias!
Ok
Amigo. La verdad que te agradezco el tiempo perdido pero ninguna de las soluciones brindadas me fue de ayuda. Si quieres sigue intentándolo pero antes prueba tú el código, así me pasas el "posta". Gracias de todas formas!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas