Foros del Web » Soporte técnico » Ofimática »

convertir BD de access 97 a access 2000

Estas en el tema de convertir BD de access 97 a access 2000 en el foro de Ofimática en Foros del Web. Hola, me gustaría modificar una base de datos que está en access 97, pero yo estoy usando actualmente el access 2000. Me da la opción ...
  #1 (permalink)  
Antiguo 12/05/2009, 04:18
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
convertir BD de access 97 a access 2000

Hola, me gustaría modificar una base de datos que está en access 97, pero yo estoy usando actualmente el access 2000. Me da la opción de convertir la BD de 97 a 2000 y en principio parecía hacerlo perfectamente. Los formularios y las tablas aparecen igual, pero a la hora de hacer una consulta y obtener un informe tengo un problema: poniendo los mismos parámetros de entrada, la versión 97 me saca 51 registros de salida y la versión 2000 solo 4. Alguien sabría decirme que hago mal? Es problema de access o de Visual Basic? Gracias de antemano y un saludo.
  #2 (permalink)  
Antiguo 12/05/2009, 05:03
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: convertir BD de access 97 a access 2000

Podrias postear cual es la sintaxis de esa consulta??

Al pasar de access 97 a 2000 puede hber referencias que se pierdan, nuevas funcionalidades, etc etc. Pueden ser muchas cosas. Cuando yo hace un par de años cambie todas las BD de 97 a 2000, tuve que hacer varios cambios.

Un saludo
  #3 (permalink)  
Antiguo 12/05/2009, 05:09
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: convertir BD de access 97 a access 2000

Pues esta es una de ellas. Me imaginaba que podría ser algo de eso, pero ni idea de lo que tendría que cambiar. Muchas gracias por el interés.

Private Sub Informe_Click()
On Error GoTo Err_Comando51_Click
'MUESTRA LOS DATOS QUE COINCIDEN CON LA CONSULTA EFECTUADA

'Variables

Dim DiaMin, MesMin, AñoMin As Integer
Dim DiaMax, MesMax, AñoMax As Integer
Dim SQL As String

'Comprobaciones

'FechaExpedicionLicenciaMinima - FechaExpedicionLicenciaMaxima
If Not IsNull(Me.FechaExpedicionLicenciaMinima) And Not IsNull(Me.FechaExpedicionLicenciaMaxima) Then
'comienzo la sql
SQL = "SELECT * FROM tbTitulares WHERE ( "

DiaMin = Day(Me.FechaExpedicionLicenciaMinima)
MesMin = Month(Me.FechaExpedicionLicenciaMinima)
AñoMin = Year(Me.FechaExpedicionLicenciaMinima)

DiaMax = Day(Me.FechaExpedicionLicenciaMaxima)
MesMax = Month(Me.FechaExpedicionLicenciaMaxima)
AñoMax = Year(Me.FechaExpedicionLicenciaMaxima)
SQL = SQL & " (tbTitulares.FechaExpedicion BETWEEN #" & MesMin & "/" & DiaMin & "/" & AñoMin & "# AND #" & MesMax & "/" & DiaMax & "/" & AñoMax & "#) "
End If

'FechaCaducidadLicenciaMinima - FechaCaducidadLicenciaMaxima
If Not IsNull(Me.FechaCaducidadLicenciaMinima) And Not IsNull(Me.FechaCaducidadLicenciaMaxima) Then

DiaMin = Day(Me.FechaCaducidadLicenciaMinima)
MesMin = Month(Me.FechaCaducidadLicenciaMinima)
AñoMin = Year(Me.FechaCaducidadLicenciaMinima)

DiaMax = Day(Me.FechaCaducidadLicenciaMaxima)
MesMax = Month(Me.FechaCaducidadLicenciaMaxima)
AñoMax = Year(Me.FechaCaducidadLicenciaMaxima)
'compruebo si se ha comenzado la sql, si no la comienzo
If SQL = "" Then
SQL = "SELECT * FROM tbTitulares WHERE ( "
Else
SQL = SQL + " AND "
End If

SQL = SQL & " (tbTitulares.FechaCaducidad BETWEEN #" & MesMin & "/" & DiaMin & "/" & AñoMin & "# AND #" & MesMax & "/" & DiaMax & "/" & AñoMax & "#) "
End If

If SQL = "" Then
SQL = "Select * from tbTitulares"
Else
SQL = SQL & " );"
End If

'abro el informe
DoCmd.OpenReport "rptConsultasLicencias", acViewDesign
Reports("rptConsultasLicencias").RecordSource = SQL
DoCmd.Close acReport, "rptConsultasLicencias", acSaveYes
DoCmd.OpenReport "rptConsultasLicencias", acViewPreview

Exit_Comando51_Click:
Exit Sub

Err_Comando51_Click:
MsgBox Err.Description
Resume Exit_Comando51_Click

End Sub
  #4 (permalink)  
Antiguo 12/05/2009, 05:43
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: convertir BD de access 97 a access 2000

MIra a ver si con estos cambios consigues algo:

Cita:
Private Sub Informe_Click()
On Error GoTo Err_Comando51_Click
'MUESTRA LOS DATOS QUE COINCIDEN CON LA CONSULTA EFECTUADA

'Variables

Dim DiaMin As Integer, MesMin As Integer, AñoMin As Integer
Dim DiaMax As Integer, MesMax As Integer, AñoMax As Integer
Dim SQL As String

'Comprobaciones

'FechaExpedicionLicenciaMinima - FechaExpedicionLicenciaMaxima
If Nz(Me.FechaExpedicionLicenciaMinima, "") <> "" And Nz(Me.FechaExpedicionLicenciaMaxima, "") <> "" Then
'comienzo la sql
SQL = "SELECT * FROM tbTitulares WHERE ( "

DiaMin = Day(Me.FechaExpedicionLicenciaMinima)
MesMin = Month(Me.FechaExpedicionLicenciaMinima)
AñoMin = Year(Me.FechaExpedicionLicenciaMinima)

DiaMax = Day(Me.FechaExpedicionLicenciaMaxima)
MesMax = Month(Me.FechaExpedicionLicenciaMaxima)
AñoMax = Year(Me.FechaExpedicionLicenciaMaxima)
SQL = SQL & " (tbTitulares.FechaExpedicion BETWEEN #" & DateSerial(AñoMin, MesMin, DiaMin) & "# AND #" & DateSerial(AñoMax, MesMax, DiaMax) & "#) "
End If

'FechaCaducidadLicenciaMinima - FechaCaducidadLicenciaMaxima
If Nz(Me.FechaCaducidadLicenciaMinima, "") <> "" And Nz(Me.FechaCaducidadLicenciaMaxima, "") <> "" Then

DiaMin = Day(Me.FechaCaducidadLicenciaMinima)
MesMin = Month(Me.FechaCaducidadLicenciaMinima)
AñoMin = Year(Me.FechaCaducidadLicenciaMinima)

DiaMax = Day(Me.FechaCaducidadLicenciaMaxima)
MesMax = Month(Me.FechaCaducidadLicenciaMaxima)
AñoMax = Year(Me.FechaCaducidadLicenciaMaxima)
'compruebo si se ha comenzado la sql, si no la comienzo
If SQL = "" Then
SQL = "SELECT * FROM tbTitulares WHERE ( "
Else
SQL = SQL + " AND "
End If

SQL = SQL & " (tbTitulares.FechaCaducidad BETWEEN #" & DateSerial(AñoMin, MesMin, DiaMin) & "# AND #" & DateSerial(AñoMax, MesMax, DiaMax) & "#) "
End If

If Nz(SQL, "") = "" Then
SQL = "Select * from tbTitulares"
Else
SQL = SQL & " );"
End If

'abro el informe
DoCmd.OpenReport "rptConsultasLicencias", acViewDesign
Reports("rptConsultasLicencias").RecordSource = SQL
DoCmd.Close acReport, "rptConsultasLicencias", acSaveYes
DoCmd.OpenReport "rptConsultasLicencias", acViewPreview

Exit_Comando51_Click:
Exit Sub

Err_Comando51_Click:
MsgBox Err.Description
Resume Exit_Comando51_Click

End Sub
un saludo

Última edición por Taribo007; 12/05/2009 a las 06:14
  #5 (permalink)  
Antiguo 12/05/2009, 05:51
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: convertir BD de access 97 a access 2000

El mismo resultado que antes...
Qué es lo que cambiaste tú?
  #6 (permalink)  
Antiguo 12/05/2009, 06:13
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 meses
Puntos: 18
Respuesta: convertir BD de access 97 a access 2000

Justo antes de abrir el informe, ejecuta un debug.print, que imprimira el contenido de la variable sql en la ventana inmediato. Copiala y crea una consulta ueva con esa sql a ver si los datos son correctos y la sql esta bien construida.
If Nz(SQL, "") = "" Then
SQL = "Select * from tbTitulares"
Else
SQL = SQL & " );"
End If

debug.print sql

Un saludo

He puesto en rojo lo que he cambiado
  #7 (permalink)  
Antiguo 12/05/2009, 06:32
 
Fecha de Ingreso: abril-2009
Mensajes: 24
Antigüedad: 15 años
Puntos: 0
Respuesta: convertir BD de access 97 a access 2000

Culpa mía.
Me acabo de dar cuenta que siempre se pasan los mismo parámetros, pongas lo que pongas. La que que me pasaste está bien, igual que la que convertí yo, hace la consulta correctamente, pero la inicial (versión 97), deja siempre las mismas fechas, es como si estuviera bloqueada. Muchas gracias por tu ayuda.
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 22:41.