Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

como imprimir todos los registros

Estas en el tema de como imprimir todos los registros en el foro de Visual Basic clásico en Foros del Web. hola, quisier que me ayudaran con una duda que tengo. tengo un programa que al darle clic a un boton me guarda unos datos y ...
  #1 (permalink)  
Antiguo 17/06/2008, 10:53
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
como imprimir todos los registros

hola, quisier que me ayudaran con una duda que tengo.

tengo un programa que al darle clic a un boton me guarda unos datos y los manda a imprimir por fecha, me imprime bien y todo, pero el ultimo dato que meti no me lo imprime, solo el ultimo dato no me lo imprime.

les pongo el codigo:

On Local Error Resume Next
Dim i As Integer
If Metida = True Then
Exit Sub
End If
Dim actual As Date

Dim J As Integer

i = 1

Call total
res = MsgBox("¿ESTA USTED SEGURO QUE EL PEDIDO ESTA CORRECTO?", vbYesNo, "IMPRESION/GUARDADO")


If res = vbYes Then



Do While i < MSHFlexGrid1.Rows



If Me.MSHFlexGrid1.TextMatrix(i, 3) = "" And Me.MSHFlexGrid1.TextMatrix(i, 4) = "" And Me.MSHFlexGrid1.TextMatrix(i, 5) = "" Then


Else

Dim db As New ADODB.Connection
Dim adoPrimaryRS As New ADODB.Recordset
Set db = New ADODB.Connection
Set adoPrimaryRS = New ADODB.Recordset
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\WINDOWS\sucursal\sucursal.mdb" ' base path es direccionamiento a la base de datos
adoPrimaryRS.Open "Select clave,sucursal,pedido,existencia,vuelta1,vuelta2,v uelta3,fecha,total from pedidos", db, adOpenStatic, adLockOptimistic
adoPrimaryRS.AddNew

adoPrimaryRS!clave = "NoVent"
adoPrimaryRS!sucursal = Label1
adoPrimaryRS!pedido = Me.MSHFlexGrid1.TextMatrix(i, 1)
adoPrimaryRS!existencia = Val(Me.MSHFlexGrid1.TextMatrix(i, 2))
adoPrimaryRS!vuelta1 = Val(Me.MSHFlexGrid1.TextMatrix(i, 3))
adoPrimaryRS!vuelta2 = Val(Me.MSHFlexGrid1.TextMatrix(i, 4))
adoPrimaryRS!vuelta3 = Val(Me.MSHFlexGrid1.TextMatrix(i, 5))
adoPrimaryRS!total = Val(Me.MSHFlexGrid1.TextMatrix(i, 2)) + Val(Me.MSHFlexGrid1.TextMatrix(i, 3)) + Val(Me.MSHFlexGrid1.TextMatrix(i, 4)) + Val(Me.MSHFlexGrid1.TextMatrix(i, 5))
adoPrimaryRS!fecha = Date
'adoPrimaryRS!hora = Time
'adoPrimaryRS!cantidad = Val(Me.MSHFlexGrid1.TextMatrix(i, 4))
'adoPrimaryRS!Total = Val(Me.MSHFlexGrid1.TextMatrix(i, 5))
adoPrimaryRS.Update





MSHFlexGrid1.TextMatrix(i, 3) = ""
MSHFlexGrid1.TextMatrix(i, 4) = ""
MSHFlexGrid1.TextMatrix(i, 5) = ""
MSHFlexGrid1.TextMatrix(i, 6) = ""


End If


i = i + 1
Loop
Else


End If



Dim db2 As New ADODB.Connection

db2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\WINDOWS\Pollo Feliz\sucursal.mdb" & ";Persist Security Info=False"

actual = Date

rss.Open "select clave,pedido,vuelta1,vuelta2,vuelta3 from pedidos where clave like 'NoVent' and fecha = #" & Format(actual, "mm/dd/yyyy") & "# ", db2, adOpenStatic, adLockOptimistic


Open "\\SERVER\EPSONTM-" For Output As #1

Print #1, Tab(0); "PEDIDO DEL DIA";
Print #1, Tab(0); Date
Print #1, Tab(0); Time
Print #1, " "
Print #1, Tab(0); "Producto"; Tab(24); "V1"; Tab(31); "V2"; Tab(38); "V3 ";
Print #1, "________________________________________"
rss.MoveFirst
Do While Not rss.EOF
Print #1, Tab(0); rss!pedido; Tab(23); rss!vuelta1; Tab(30); rss!vuelta2; Tab(37); rss!vuelta3;
rss.MoveNext
Loop
db2.Close
Print #1, Chr$(&H1B); Chr$(&H64); Chr$(&H5);
Print #1, Chr$(29) + Chr$(86) + "0"
Print #1, Tab(6); "______________________________"
Print #1, Tab(6); "FIRMA DE LA CAJERA O ENCARGADO"
Print #1, Chr$(&H1B); Chr$(&H64); Chr$(&H5);
Print #1, Chr$(29) + Chr$(86) + "0"
Close #1

no se que este pasando, si me guarda bien todos los datos en la tabla, pero no me imprime solo el ultimo dato que se guardo en la tabla, si guardo solo 1 fila del grid me manda a imprimir un dato vacio

Última edición por william_085; 17/06/2008 a las 16:25
  #2 (permalink)  
Antiguo 18/06/2008, 00:33
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: como imprimir todos los registros

Hola, fíjate en esta instrucción:

Do While i < MSHFlexGrid1.Rows
Si el Grid tiene 20 filas imprimirá sólo hasta la 19, ya que la 20 no es menor al número de filas sino igual. Cámbiala por esta otra:

Do While i <= MSHFlexGrid1.Rows

  #3 (permalink)  
Antiguo 18/06/2008, 20:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: como imprimir todos los registros

gracias avellaneda.

lo que me di cuenta es que agrege un msgbox despues del guardado de los datos y solamente asi si me imprime los datos completos
  #4 (permalink)  
Antiguo 19/06/2008, 08:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: como imprimir todos los registros

Cita:
Iniciado por william_085 Ver Mensaje
gracias avellaneda.

lo que me di cuenta es que agrege un msgbox despues del guardado de los datos y solamente asi si me imprime los datos completos
Veamos, ¿por qué no utilizas la primera conexión para abrir el recordset e imprimir los datos?

P.S.: ¿Has intentado quitar el On Error Resume Next para saber si no está tirando error en algún lado?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/06/2008, 08:36
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: como imprimir todos los registros

hola david, te refieres a la conexion a la base de datos? uso la misma que tengo arriba??

aparte del msgbox que otra cosa puedo hacer para ganar ese par de segundos que me permitan imprimir todos los registros?



gracias
  #6 (permalink)  
Antiguo 19/06/2008, 08:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: como imprimir todos los registros

Cita:
Iniciado por william_085 Ver Mensaje
hola david, te refieres a la conexion a la base de datos? uso la misma que tengo arriba??

aparte del msgbox que otra cosa puedo hacer para ganar ese par de segundos que me permitan imprimir todos los registros?



gracias
Sí, puedes usar la misma conexión que tienes arriba. Para lo segundo puedes usar la API (Sleep, si no mal lo recuerdo)...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 19/06/2008, 12:01
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: como imprimir todos los registros

gracias david, use esto asi.

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)



y donde puse el msgbox para que me diera tiempo, le puse asi

sleep 5000

y manda a imprimir, no se si a esto te referias david.

gracias
  #8 (permalink)  
Antiguo 19/06/2008, 12:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: como imprimir todos los registros

Exactamente, a eso me refería ¿te ha funcionado?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 20/06/2008, 15:20
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: como imprimir todos los registros

me funciono exelente.

muchas gracias
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 00:42.