Cuantos registros hay en un archivo

08/04/2005 - 20:26 por Alr | Informe spam
Estoy haciendo una serie de reportes en Excel, estos reportes se generan a
partir de bases de datos "Dbf". Y ya que aun tengo algunas dudas me temo que
seguire consultandolos, ya que este grupo me ha sido de gran utilidad, lo
cual les agradezco mucho.

Como se cuantos registros tengo en un archivo?
Lo estoy haciendo barriendo todo el archivo y agregando un contador,
haciendo un "do while not rs.eof" y un "Loop", donde "rs" es el recordset.
El caso es que por lo que he visto el recordset tiene varias propiedades
como "rs.MoveFirst", "rs.MoveNext", puedo saber el numero de campos que
tiene con "rs.Fields.Count", etc., por lo que pense que la propiedad
"rs.RecordCount" me daria esa informacion, sin embargo el valor que me da
es -1, entonces pense en colocarme en el ultimo registro con "rs.MoveLast",
pero cuando llego a esta linea el programa se salta todas las demas lineas
sin enviarme ningun error por lo que ignora el codigo que esta debajo de
esta linea.
Estoy haciendo algo mal?
Agradeceria algo de ayuda.
Si gustan puedo enviarlos el codigo que tengo.

Saludos al grupo.

Preguntas similare

Leer las respuestas

#1 KL
08/04/2005 - 20:43 | Informe spam
Hola Alr,

Pueba hacer:

With rs
.MoveLast
x=.RecordCount
End With

Saludos,
KL


"Alr" wrote in message
news:
Estoy haciendo una serie de reportes en Excel, estos reportes se generan a
partir de bases de datos "Dbf". Y ya que aun tengo algunas dudas me temo
que seguire consultandolos, ya que este grupo me ha sido de gran utilidad,
lo cual les agradezco mucho.

Como se cuantos registros tengo en un archivo?
Lo estoy haciendo barriendo todo el archivo y agregando un contador,
haciendo un "do while not rs.eof" y un "Loop", donde "rs" es el recordset.
El caso es que por lo que he visto el recordset tiene varias propiedades
como "rs.MoveFirst", "rs.MoveNext", puedo saber el numero de campos que
tiene con "rs.Fields.Count", etc., por lo que pense que la propiedad
"rs.RecordCount" me daria esa informacion, sin embargo el valor que me da
es -1, entonces pense en colocarme en el ultimo registro con
"rs.MoveLast", pero cuando llego a esta linea el programa se salta todas
las demas lineas sin enviarme ningun error por lo que ignora el codigo que
esta debajo de esta linea.
Estoy haciendo algo mal?
Agradeceria algo de ayuda.
Si gustan puedo enviarlos el codigo que tengo.

Saludos al grupo.



Respuesta Responder a este mensaje
#2 Manuel Romero
08/04/2005 - 22:40 | Informe spam
Tienes que poner la siguiente linea

rs.CursorLocation=adUseClient

antes de abrir el recordset

"Alr" escribió en el mensaje
news:
Estoy haciendo una serie de reportes en Excel, estos reportes se generan a
partir de bases de datos "Dbf". Y ya que aun tengo algunas dudas me temo


que
seguire consultandolos, ya que este grupo me ha sido de gran utilidad, lo
cual les agradezco mucho.

Como se cuantos registros tengo en un archivo?
Lo estoy haciendo barriendo todo el archivo y agregando un contador,
haciendo un "do while not rs.eof" y un "Loop", donde "rs" es el recordset.
El caso es que por lo que he visto el recordset tiene varias propiedades
como "rs.MoveFirst", "rs.MoveNext", puedo saber el numero de campos que
tiene con "rs.Fields.Count", etc., por lo que pense que la propiedad
"rs.RecordCount" me daria esa informacion, sin embargo el valor que me da
es -1, entonces pense en colocarme en el ultimo registro con


"rs.MoveLast",
pero cuando llego a esta linea el programa se salta todas las demas lineas
sin enviarme ningun error por lo que ignora el codigo que esta debajo de
esta linea.
Estoy haciendo algo mal?
Agradeceria algo de ayuda.
Si gustan puedo enviarlos el codigo que tengo.

Saludos al grupo.



Respuesta Responder a este mensaje
#3 Alr
08/04/2005 - 23:18 | Informe spam
Sigue sucediendo lo mismo.
Al momento de ejecutar ".MoveLast" se va hasta el final del procedimiento.
Este es el codigo que tengo:

Este procedimiento llena un ListBox con los registros que hay en un archivo
llamado partes, luego del ListBox se selecciona un
numero de parte, que servira para formar el reporte.

Sub Llena_Partes()
Dim x As Integer
Dim lCont As Integer
Dim lAvance As Single
Dim lRec As Integer
On Error GoTo ERRORX

x = 0
lRec = 0
lCont = 1
lAvance = 0
Sel_Partes.ListBox_Partes.ColumnCount = 5 'Sel_Partes
es el nombre del Form.
Sel_Partes.ListBox_Partes.ColumnHeads = True
Sel_Partes.ListBox_Partes.ColumnWidths = 160
cn.Open "driver={Microsoft dBase Driver
(*.dbf)};driverid'7;dbq=c:\sistemas\sav"
rs.Open "select parte,describe,linea,articulo,existencia from partes.dbf
order by parte", cn, , , adCmdText
With rs 'Esto es lo que agregue
.MoveLast 'Pero en este punto el programa
salta hasta el final.
lRec = .RecordCount
End With
'rs.MoveFirst 'De esta forma lo tenia para
calcular el numero de registros, y poder hacer la barra
'Do While Not rs.EOF 'de avance en base al total de registros
del archivo. La barra funciona bien.
' lRec = lRec + 1
' rs.MoveNext
'Loop
rs.MoveFirst
Do While Not rs.EOF
Sel_Partes.ListBox_Partes.AddItem ""
Sel_Partes.ListBox_Partes.Column(0, x) = rs.Fields(1).Value
Sel_Partes.ListBox_Partes.Column(1, x) = rs.Fields(0).Value
Sel_Partes.ListBox_Partes.Column(2, x) = rs.Fields(2).Value
Sel_Partes.ListBox_Partes.Column(3, x) = rs.Fields(3).Value
Sel_Partes.ListBox_Partes.Column(4, x) = rs.Fields(4).Value
x = x + 1
lAvance = (x / lRec) * 100
With ProgBar
.FrameProgress.Caption = Format(lAvance / 100, "0%")
.LabelProgress.Width = lAvance * 2
End With
' The DoEvents statement is responsible for the form updating
DoEvents
rs.MoveNext
Loop
Unload ProgBar
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
ERRORX:
If Err.Number > 0 Then
MsgBox "Ocurrio un Error al intentar retraer Partes [" & Err.Number
& "] " & Err.Description
End If
End Sub



"KL" wrote in message
news:%
Hola Alr,

Pueba hacer:

With rs
.MoveLast
x=.RecordCount
End With

Saludos,
KL


"Alr" wrote in message
news:
Estoy haciendo una serie de reportes en Excel, estos reportes se generan
a partir de bases de datos "Dbf". Y ya que aun tengo algunas dudas me
temo que seguire consultandolos, ya que este grupo me ha sido de gran
utilidad, lo cual les agradezco mucho.

Como se cuantos registros tengo en un archivo?
Lo estoy haciendo barriendo todo el archivo y agregando un contador,
haciendo un "do while not rs.eof" y un "Loop", donde "rs" es el
recordset. El caso es que por lo que he visto el recordset tiene varias
propiedades como "rs.MoveFirst", "rs.MoveNext", puedo saber el numero de
campos que tiene con "rs.Fields.Count", etc., por lo que pense que la
propiedad "rs.RecordCount" me daria esa informacion, sin embargo el valor
que me da es -1, entonces pense en colocarme en el ultimo registro con
"rs.MoveLast", pero cuando llego a esta linea el programa se salta todas
las demas lineas sin enviarme ningun error por lo que ignora el codigo
que esta debajo de esta linea.
Estoy haciendo algo mal?
Agradeceria algo de ayuda.
Si gustan puedo enviarlos el codigo que tengo.

Saludos al grupo.







Respuesta Responder a este mensaje
#4 Alr
08/04/2005 - 23:40 | Informe spam
Muchisimas Gracias, eso era !!!


"Manuel Romero" @hotmail.com> wrote in message
news:
Tienes que poner la siguiente linea

rs.CursorLocation=adUseClient

antes de abrir el recordset

"Alr" escribió en el mensaje
news:
Estoy haciendo una serie de reportes en Excel, estos reportes se generan
a
partir de bases de datos "Dbf". Y ya que aun tengo algunas dudas me temo


que
seguire consultandolos, ya que este grupo me ha sido de gran utilidad, lo
cual les agradezco mucho.

Como se cuantos registros tengo en un archivo?
Lo estoy haciendo barriendo todo el archivo y agregando un contador,
haciendo un "do while not rs.eof" y un "Loop", donde "rs" es el
recordset.
El caso es que por lo que he visto el recordset tiene varias propiedades
como "rs.MoveFirst", "rs.MoveNext", puedo saber el numero de campos que
tiene con "rs.Fields.Count", etc., por lo que pense que la propiedad
"rs.RecordCount" me daria esa informacion, sin embargo el valor que me da
es -1, entonces pense en colocarme en el ultimo registro con


"rs.MoveLast",
pero cuando llego a esta linea el programa se salta todas las demas
lineas
sin enviarme ningun error por lo que ignora el codigo que esta debajo de
esta linea.
Estoy haciendo algo mal?
Agradeceria algo de ayuda.
Si gustan puedo enviarlos el codigo que tengo.

Saludos al grupo.







email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida