De Access a Excel
Hola adorea, ojala pueda plantear de manera clara y correcta mi pregunta y puedas ayudarme...
Tengo una tabla en access y exporto determinados campos a excel mediante código... Uno de estos campos o registros es de fecha, ¿quisiera qué me exportara solo los registros mediante un intervalo de fechas que ye le especifique... Me explico?
Esto lo puedo hacer en un informe de access, ya que en el origen de registro pongo en el criterio del campo "fecha" lo siguiente... >=[forms]![Intervalo de fechas del informe]! [Fecha Inicio] Y <=[Forms]![Intervalo de fechas del informe]![Fecha fina]
Ya que como podrás ver tengo un formulario llamado intervalo de fechas del informe y este lo pongo en el criertio del campo "fecha" en cuqluier informe y es fácil, pero quiero hacer esto mismo cuando exporto los datos a excel... ¿Incluso si fuera posible utilizar el mismo formulario del intervalo de fechas que tengo me explico?... Pego parte del código que tengo para que te des una idea más clara, ojala me haya podido explicar, saludos y gracias
Private Sub AccessExcell_Click()
Dim H As Long
Dim V As Long
Dim FechaSol As Date
Dim MiBase As Database
Dim MiTabla As Recordset
On Error GoTo ErrorExcel
Dim objExcel As Excel.Application
Set MiBase = CurrentDb
Set MiTabla = MiBase.OpenRecordset("SELECT * FROM TblInvestigaciones ORDER BY FechaSol ASC", dbOpenDynaset)
If MiTabla.RecordCount = 0 Then
MsgBox "La base de datos esta vacia", vbCritical + vbOKOnly, "AVISO"
Exit Sub
End If
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.SheetsInNewWorkbook = 1
objExcel.Workbooks.Add
With objExcel.ActiveSheet
.Range(.Cells(1, 1), .Cells(1, 5)).Borders.LineStyle = xlContinuous
.Range(.Cells(1, 1), .Cells(1, 5)).HorizontalAlignment = xlHAlignCenterAcrossSelection
.Cells(1, 1) = "FOLIO"
.Cells(1, 2) = "NOMBRE"
.Cells(1, 3) = "RADIOS"
.Cells(1, 4) = "CIUDAD"
.Cells(1, 5) = "FECHA SOLICITUD"
.Range(.Cells(1, 1), .Cells(1, 5)).Font.Bold = True
.Range(.Cells(1, 1), .Cells(1, 5)).Interior.Color = &H8080808F
.Columns("A").ColumnWidth = 15
.Columns("B").ColumnWidth = 30
.Columns("C").ColumnWidth = 10
.Columns("D").ColumnWidth = 10
.Columns("E").ColumnWidth = 20
End With
V = 2
H = 1
Do While Not MiTabla.EOF
DoEvents
objExcel.ActiveSheet.Cells(V, H).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 1).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 2).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 3).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 4).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H) = MiTabla.Fields!Folio
objExcel.ActiveSheet.Cells(V, H + 1) = MiTabla.Fields!Nombre
objExcel.ActiveSheet.Cells(V, H + 2) = MiTabla.Fields!Radios
objExcel.ActiveSheet.Cells(V, H + 3) = MiTabla.Fields!Estado
objExcel.ActiveSheet.Cells(V, H + 4) = MiTabla.Fields!FechaSol & Format("")
Tengo una tabla en access y exporto determinados campos a excel mediante código... Uno de estos campos o registros es de fecha, ¿quisiera qué me exportara solo los registros mediante un intervalo de fechas que ye le especifique... Me explico?
Esto lo puedo hacer en un informe de access, ya que en el origen de registro pongo en el criterio del campo "fecha" lo siguiente... >=[forms]![Intervalo de fechas del informe]! [Fecha Inicio] Y <=[Forms]![Intervalo de fechas del informe]![Fecha fina]
Ya que como podrás ver tengo un formulario llamado intervalo de fechas del informe y este lo pongo en el criertio del campo "fecha" en cuqluier informe y es fácil, pero quiero hacer esto mismo cuando exporto los datos a excel... ¿Incluso si fuera posible utilizar el mismo formulario del intervalo de fechas que tengo me explico?... Pego parte del código que tengo para que te des una idea más clara, ojala me haya podido explicar, saludos y gracias
Private Sub AccessExcell_Click()
Dim H As Long
Dim V As Long
Dim FechaSol As Date
Dim MiBase As Database
Dim MiTabla As Recordset
On Error GoTo ErrorExcel
Dim objExcel As Excel.Application
Set MiBase = CurrentDb
Set MiTabla = MiBase.OpenRecordset("SELECT * FROM TblInvestigaciones ORDER BY FechaSol ASC", dbOpenDynaset)
If MiTabla.RecordCount = 0 Then
MsgBox "La base de datos esta vacia", vbCritical + vbOKOnly, "AVISO"
Exit Sub
End If
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.SheetsInNewWorkbook = 1
objExcel.Workbooks.Add
With objExcel.ActiveSheet
.Range(.Cells(1, 1), .Cells(1, 5)).Borders.LineStyle = xlContinuous
.Range(.Cells(1, 1), .Cells(1, 5)).HorizontalAlignment = xlHAlignCenterAcrossSelection
.Cells(1, 1) = "FOLIO"
.Cells(1, 2) = "NOMBRE"
.Cells(1, 3) = "RADIOS"
.Cells(1, 4) = "CIUDAD"
.Cells(1, 5) = "FECHA SOLICITUD"
.Range(.Cells(1, 1), .Cells(1, 5)).Font.Bold = True
.Range(.Cells(1, 1), .Cells(1, 5)).Interior.Color = &H8080808F
.Columns("A").ColumnWidth = 15
.Columns("B").ColumnWidth = 30
.Columns("C").ColumnWidth = 10
.Columns("D").ColumnWidth = 10
.Columns("E").ColumnWidth = 20
End With
V = 2
H = 1
Do While Not MiTabla.EOF
DoEvents
objExcel.ActiveSheet.Cells(V, H).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 1).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 2).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 3).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H + 4).Borders.LineStyle = xlContinuous
objExcel.ActiveSheet.Cells(V, H) = MiTabla.Fields!Folio
objExcel.ActiveSheet.Cells(V, H + 1) = MiTabla.Fields!Nombre
objExcel.ActiveSheet.Cells(V, H + 2) = MiTabla.Fields!Radios
objExcel.ActiveSheet.Cells(V, H + 3) = MiTabla.Fields!Estado
objExcel.ActiveSheet.Cells(V, H + 4) = MiTabla.Fields!FechaSol & Format("")
1 respuesta
Respuesta de arodea
1