Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/08/2008, 11:41
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 3 meses
Puntos: 37
Respuesta: AYUDA: Actualizar reportes

Cita:
Iniciado por rishart Ver Mensaje
Hola amigos, bueno aqui les tengo una gran duda que no se como hacer para solucionarlo, resulta que antes para mostrar los reportes tenia enlazarlos al dataenviroment pero se tenia que refresacar y no refrescaba inmediatamente. entonces loque hice fue enlazar el reporte directamente a la base de datos en acces. pero resulata que cuando abro el reporte para que me muestre la consulta acuual tengo que abrir dos veces el reporte y no se porque.

bueno aqui les muestro el codigo que estoy empleando:


Código:
vnumero = Trim(Label4.Caption)
rancho = Trim(predio)

Set rst = dbs.OpenRecordset("select * from fertilizacion where numero like '" & vnumero & "'")
If rst.RecordCount = 0 Then
    
   dbs.Execute "INSERT INTO fertilizacion(numero,prom1parto,predio) values('" & Trim(vnumero) & "','" & Trim(total) & "','" & Trim(rancho) & "')"
    
    
ElseIf rst.RecordCount = 1 Then

    dbs.Execute "UPDATE fertilizacion set numero='" & Trim(vnumero) & "',prom1parto='" & Trim(total) & "',predio='" & Trim(rancho) & "'where numero= '" & vnumero & "'"


End If

base.Open "DRIVER={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\bdrancho.mdb", , "fertilizacion"


Set rs = base.Execute("select * from fertilizacion where numero='1'")

With DataReport51
    With DataReport51.Sections("Sección2")
     ' Encabezado de Informe
      Set .Controls("Image2").Picture = LoadPicture(App.Path & "\logo.jpg")
    .Controls.Item("Etiqueta14").Caption = frmPrincipal.Label4.Caption
    .Controls.Item("Etiqueta15").Caption = frmPrincipal.Label5.Caption
    .Controls.Item("Etiqueta20").Caption = predio
    .Controls.Item("Etiqueta22").Caption = Combo2.Text
    .Controls.Item("Etiqueta10").Caption = Combo1.Text
    End With
        
      With DataReport51.Sections("Sección1").Controls
        .Item("txttasa").DataField = rs("tasa").Name
        .Item("txtvacas").DataField = rs("vacas").Name
        .Item("txtvaquillas").DataField = rs("vaquillas").Name
        .Item("txttotal").DataField = rs("total").Name
           End With
     Set .DataSource = rs
       .Refresh
       .Show
        
  End With
bueno cabe destacar que antes de mostrar el reporte y al realizar la consulta esta seguarda en una tabla temporal y de ahi se va al reporte.

alguien podria ayudarme a como hacer que me muestre los datos consultados sin necesidad de abir 2 veces el reporte. es como refrescar la base de datos?? espero puedan ayudarme y les agradezco de antemano y les envio un cordial saludo..
Bueno, hay algunas cosas que no entiendo de ése código:

Set rs = base.Execute("select * from fertilizacion where numero='1'")

¿Y porqué no

Set rs = base.OpenRecordset("select * from fertilizacion where numero='1'") ??


With DataReport51
With DataReport51.Sections("Sección2")

Un With dentro del mismo With? no sería mejor así:

With DataReport51
.Sections("Sección2")
....
No digo que salte error, pero parece mas lógico y evitamos redundancias.

y la instrucción .Refresh no es necesaria.