Visual Basic - AYUDA

Life is soft - evento anual de software empresarial
 
Vista:

AYUDA

Publicado por Ray (29 intervenciones) el 01/09/2006 16:16:01
Alguien me puedo ayudar. necesito imprimir un control mensual sobre horas de trabajo tengo una base de datos......del cual saco un informe para imprimer pero la pregunta es.....como especificar que imprimasolo las de este mes y deje las demas......

o como hacer una consulta donde haya un campo fecha y hacerlo que sea a todas las fechas de el mes actual

en resumen
necesito indicar que se imprima todo lo succedido solo en el mes actul.......
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA

Publicado por ivan (1039 intervenciones) el 01/09/2006 18:33:24
No se que uses para imprimir, pero lo que puedes hacer es establecer un filtro para poder seleccionar los resgistros que quieras imprimir.

Haz tu consulta donde la fecha esté dentro del rango del día 1 y del día último del mes seleccionado.

Para esto hazte una función que te devuelva el nº de días de cada mes, acuérdate que cada 4 años febrero tiene 29 días., así que si el año es divisible entre 4 el mes de febrero tendra 29 y si no 28.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA

Publicado por Eduardo Yupton (96 intervenciones) el 01/09/2006 19:06:12
PRIMERO CREA UNA CONSULTA DESDE FORMULARIO PARA FILTRAR FECHAS EN EL DATAGRID

LUEGO ASOCIA EL DATAGRID AL REPORTE POR CODIGO

Set DataReport1.DataSource = DataGrid1.DataSource
DataReport1.WindowState = 2
DataReport1.Show 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA

Publicado por EDUARDO YUPTON (96 intervenciones) el 01/09/2006 19:08:52
BAJA EL PROGRAMA EJEMPLO QUE HICE EN:

EL ARCHIVO ES "REPORTESCONFECHAS.ZIP"

www.geocities.com/progvb2006

ESCRIBEME UN CORREO SI TE SIRVIO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA

Publicado por ivan (1039 intervenciones) el 02/09/2006 18:00:15
Tienes razón cojonero colega, interpreté mal la duda de ray, pero el otro comentario también es válido, usar un datagrid para por medio de ahí usar el datareport, pues nunca se me hubiera ocurrido, pueda que funcione, algo rústica la respuesta, en mi caso imprimo con crystal así que yo no se usar el datareport.

Hacer uso de la función MONTH es la mejor forma de lograr una consulta de todos los registros de determinado mes.

Mi comentario sobre el año biciesto era para aplicarse a la necesidad de obtener los números de días de determinado mes y año, aunque esto, no tiene nada que ver con la pregunta que se hizo.

Espero que ray haya resuelto su problema, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA

Publicado por Alejandro (9 intervenciones) el 03/09/2006 03:31:21
esto es lo que vas a escrivir en un modulo
Public Function Salida(sTextbox As TextBox, sFlexGrid As MSFlexGrid, sDB As Database, sTable As String, sField As String) As Boolean
On Error Resume Next
Dim Contador As Integer
Dim LongitudAnterior As Integer
Dim Temporal As Recordset
'Poner la función Salida a FALSE
Salida = False
If Not sTextbox.Text = "" And IsDelOrBack = False Then
'Ponemos en LongitudAnterior la longitud del sTextbox
LongitudAnterior = Len(sTextbox.Text)
Set Temporal = sDB.OpenRecordset("SELECT * FROM " & sTable & " WHERE " & sField & " LIKE '" & sTextbox.Text & "*'", dbOpenDynaset)
If Err = 3075 Then
'Bug
End If
If Not Temporal.RecordCount = 0 Then
If Temporal.EOF = True And Temporal.BOF = True Then
MsgBox "Not Matching Records", vbInformation, "Error"
Else
Temporal.MoveFirst
sFlexGrid.Clear
sFlexGrid.FormatString = " Anumciante | Codigo |Direccion | Formato |Medida |Presentacion |Empresa |Contrato |Ciudad |Tipo |Telefono "

Do While Not Temporal.EOF
sFlexGrid.AddItem Temporal.Fields(1).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 1) = Temporal.Fields(2).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 2) = Temporal.Fields(5).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 3) = Temporal.Fields(4).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 4) = Temporal.Fields(6).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 5) = Temporal.Fields(7).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 6) = Temporal.Fields(8).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 7) = Temporal.Fields(9).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 8) = Temporal.Fields(10).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 9) = Temporal.Fields(11).Value
sFlexGrid.TextMatrix(sFlexGrid.Rows - 1, 10) = Temporal.Fields(12).Value

Temporal.MoveNext
Loop
End If
If sTextbox.SelText = "" Then
sTextbox.SelStart = LongitudAnterior
Else
sTextbox.SelStart = InStr(sTextbox.Text, sTextbox.SelText)
End If
sTextbox.SelLength = Len(sTextbox.Text)
Salida = True
Else
sFlexGrid.Clear
End If
End If
End Function

esto sirve si vas a trabajar con msflexgrid
aqui esata lo que bas a escrivir en el formulario que querai
Public DB As Database
Public Rs As Recordset
Private Sub cboBusqueda_Click()
TextoaBuscar.Text = ""
End Sub

Private Sub CmdCancel_Click()
Data1.Recordset.CancelUpdate
Command2.Enabled = False
CmdCancel.Enabled = False
cmdNew.Enabled = True
cmdUpdate.Enabled = True
d
End Sub
Private Sub cmdNew_Click()
Data1.Recordset.AddNew
h
Command2.Enabled = True
CmdCancel.Enabled = True
cmdNew.Enabled = False
cmdUpdate.Enabled = False
End Sub
Private Sub cmdUpdate_Click()
Data1.Recordset.Edit
Command2.Enabled = True
CmdCancel.Enabled = True
cmdNew.Enabled = False
cmdUpdate.Enabled = False
h
End Sub

Private Sub Command1_Click()
Form1.Show
busqueda.Hide
TextoaBuscar = ""
cboBusqueda.ListIndex = 0
End Sub

Private Sub Command2_Click()
Data1.UpdateRecord
Command2.Enabled = False
CmdCancel.Enabled = False
cmdNew.Enabled = True
cmdUpdate.Enabled = True
d
End Sub
Private Sub Command3_Click()
Data1.Recordset.MovePrevious
If Data1.Recordset.BOF Then
MsgBox "Estamos en el Primer Registro"
End If
End Sub

Private Sub Command4_Click()
Dim Resp
Resp = InputBox("Desea eliminar el registro S/N?", "Confirmación")
If UCase(Resp) = "S" Then
Data1.Recordset.Delete
Data1.Recordset.MoveFirst
Else
MsgBox "Transacción abortada."
Data1.Recordset.MoveFirst
End If
End Sub

Private Sub Command5_Click()
Data1.Recordset.MoveNext
If Data1.Recordset.EOF Then
MsgBox "Estamos en el Ultimo Registro"
End If
End Sub
Private Sub Command6_Click()
On Error Resume Next
Dim iFila, iCol As Integer
For iFila = 1 To MSFlexGrid1.Rows
For iCol = 0 To MSFlexGrid1.Cols - 1
Printer.Print MSFlexGrid1.TextMatrix(iFila, iCol)
Next iCol
Next iFila
Printer.EndDoc
End Sub

Private Sub Command7_Click()
Form1.Show
busqueda.Hide
TextoaBuscar = ""
cboBusqueda.ListIndex = 0
End Sub

Private Sub Command8_Click()
Dim Resp
Resp = InputBox("Ingrese codigo .", "Búsqueda")
Data1.Recordset.FindFirst ("codigo Like '" & Resp & "'")
If Data1.Recordset.NoMatch Then
MsgBox "No se encuentra el registro..."
Data1.Recordset.MoveLast
End If
End Sub

Private Sub Form_Load()
d
With cboBusqueda
.AddItem "medidas"
.AddItem "codigo"
.AddItem "Anunciante"
.AddItem "direccion"
.AddItem "Formato"
.AddItem "Propietario"
.AddItem "Presentacion"
.AddItem "Empresa"
.AddItem "CONTRATO"
.AddItem "Ciudad"
.AddItem "Tipo"
.AddItem "Tlf"
.ListIndex = 0
End With
If Right(App.Path, 1) = "\" Then
Set DB = OpenDatabase(App.Path + "forma.mdb")
Else
Set DB = OpenDatabase(App.Path + "\forma.mdb")
End If
Set Rs = DB.OpenRecordset("POLAR")
Me.Data1.DatabaseName = App.Path & "/forma.mdb"
End Sub

Private Sub TextoaBuscar_Change()
On Error Resume Next
If cboBusqueda.Text <> "" Then
MSFlexGrid1.Rows = 1
If MSFlexGrid1.Rows = 1 Then
MSFlexGrid1.TextMatrix(0, 0) = "Anunciante"
MSFlexGrid1.TextMatrix(0, 1) = "codigo"
MSFlexGrid1.TextMatrix(0, 2) = "direccion"
MSFlexGrid1.TextMatrix(0, 3) = "Formato"
MSFlexGrid1.TextMatrix(0, 4) = "medidas"
MSFlexGrid1.TextMatrix(0, 5) = "Propietario"
MSFlexGrid1.TextMatrix(0, 6) = "Presentacion"
MSFlexGrid1.TextMatrix(0, 7) = "Empresa"
MSFlexGrid1.TextMatrix(0, 8) = "CONTRATO"
MSFlexGrid1.TextMatrix(0, 9) = "Ciudad"
MSFlexGrid1.TextMatrix(0, 10) = "Tipo"
MSFlexGrid1.TextMatrix(0, 11) = "Tlf"
End If
Select Case cboBusqueda.Text
Case "Anunciante"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Anunciante"
Case "codigo"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "codigo"
Case "direccion"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "direccion"
Case "Formato"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Formato"
Case "medidas"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "medidas"
Case "Propietario"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Propietario"
Case "Presentacion"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Presentacion"
Case "Empresa"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Empresa"
Case "CONTRATO"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "CONTRATO"
Case "Ciudad"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Ciudad"
Case "Tipo"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Tipo"
Case "Tlf"
Salida TextoaBuscar, MSFlexGrid1, DB, "POLAR", "Tlf"
Case Else
End Select
Else
TextoaBuscar = ""
cboBusqueda.ListIndex = 0
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar