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

Como seleccionar algunos registros de varios campos

Estas en el tema de Como seleccionar algunos registros de varios campos en el foro de Visual Basic clásico en Foros del Web. Hola, estoy iniciando en esto de la programación, no soy experta por lo que me encuentro estancada en un trabajo . Se trata de generar ...
  #1 (permalink)  
Antiguo 28/07/2009, 12:34
 
Fecha de Ingreso: julio-2009
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Como seleccionar algunos registros de varios campos

Hola, estoy iniciando en esto de la programación, no soy experta por lo que me encuentro estancada en un trabajo. Se trata de generar varios archivos txt a partir de algunos campos de una tabla de acces (COD, TMAX, T5). Se van a generar los archivos segun la siguiente condicion: A3.txt, los primeros 4 valores del campo TMAX, segun su cod y T5, luego un archivo A6.txt conformado por los siguientes 4 valores de TMAX segun su codigo y T5 y asi sucesivamente. La salida tiene que tener el siguiente formato:

826 14.6787222222222
9.8 7.6 8.5 9.5
783 15.1355555555556
16.2 13.4 16.2 63.5

Yo hice un programa en VB para access pero me da de salida un solo archivo txt con todos los valores ya que como no se mucho de programación no se donde poner la condicion que me genere los archivos segun los campos cada 4 y con el formato que indique. Mi programa me da esta salida que no es la que yo necesito:

826 14.6787222222222
9.8
826 14.6787222222222
7.6
826 14.6787222222222
8.5
826 14.6787222222222
9.5
826 14.6787222222222
6.8
826 14.6787222222222
9
783 15.1355555555556
16.2
783 15.1355555555556
13.4
783 15.1355555555556
16.2
783 15.1355555555556
16
783 15.1355555555556
12.2
783 15.1355555555556
13.2

Espero haber explicado bien lo que necesito

Gracias!
  #2 (permalink)  
Antiguo 31/07/2009, 12:08
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Como seleccionar algunos registros de varios campos

Podrias pasar el codigo que usas.
Pareceria te esta faltando algun ciclo While o do while para que corte y te genera otro archivo
  #3 (permalink)  
Antiguo 31/07/2009, 14:32
 
Fecha de Ingreso: junio-2008
Ubicación: Punta Alta, Argentina
Mensajes: 82
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Como seleccionar algunos registros de varios campos

el problema a simple vista es que tenes algun bucle mar alrmado en el sentido de como manejas los datos.. si pones el codigo sera mas facil ayudarte.
  #4 (permalink)  
Antiguo 01/08/2009, 01:05
 
Fecha de Ingreso: julio-2009
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Como seleccionar algunos registros de varios campos

Trate de solucionarlo, aqui va mi programa:
Option Compare Database
Option Explicit

Public Sub Command0_Click()
Dim lngFichero As Long
Dim strFichero As String
Dim MiRS As DAO.Recordset 'Variable de recordset
Dim sRegistro As String 'Para guardar los datos
Dim sql As String
Dim strCodestacion As String
Dim i As Integer

For i = 1 To 18
strFichero = "D:\CIP"
strFichero = strFichero & "\TMAX" + LTrim(Str(i)) + ".txt"

sql = "SELECT * FROM Datos_SenamhiB order by codestacion, dia08"

Set MiRS = CurrentDb.OpenRecordset(sql, dbOpenForwardOnly)
lngFichero = FreeFile(1)
strCodestacion = ""
sRegistro = ""
Open strFichero For Output As #lngFichero
If Not MiRS.EOF And Not MiRS.BOF Then
Do While Not MiRS.EOF
If Val(MiRS("dia08")) >= i And Val(MiRS("dia08")) <= 12 * i Then
If strCodestacion = Trim(MiRS!Codestacion) Then
sRegistro = sRegistro + Space(3) + Format(Trim(MiRS!tmax), "##.00")
If Val(MiRS("dia08")) = 12*i Then
Print #lngFichero, Format(sRegistro, "##.00")
End If
Else
If strCodestacion = "" Then
strCodestacion = Trim(MiRS!Codestacion)
'Print #lngFichero, strCodestacion + Space(3) + Trim(MiRS!Lat) + Space(3) + Trim(MiRS!Lon) + Space(3) + Trim(MiRS!Altitud)
Print #lngFichero, Format(strCodestacion, "000###") + Space(3) + Format(Trim(MiRS!Lat), "##.0000") + Space(3) + Format(Trim(MiRS!Lon), "##.0000") + Space(3) + Trim(MiRS!Altitud)
sRegistro = Format(Trim(MiRS!tmax), "##.00")
Else
strCodestacion = Trim(MiRS!Codestacion)
sRegistro = Format(Trim(MiRS!tmax), "##.00")
'Print #lngFichero, strCodestacion + Space(3) + Trim(MiRS!Lat) + Space(3) + Trim(MiRS!Lon) + Space(3) + Trim(MiRS!Altitud)
Print #lngFichero, Format(strCodestacion, "000###") + Space(3) + Format(Trim(MiRS!Lat), "##.0000") + Space(3) + Format(Trim(MiRS!Lon), "##.0000") + Space(3) + Trim(MiRS!Altitud)
End If
End If
End If
MiRS.MoveNext
Loop
End If

Close #lngFichero

MiRS.Close
Set MiRS = Nothing

Next i
End Sub

Ya el programa pone los datos como les dije pero falta que lo alinee, respetando unidad decena y centena, solo los alinea bien cuanto es una decena es decie 10 10.6 pero cuando viene una unidad 5 o 5.4 no respeta la ubicacion de la unidad, el pinto y el decimal.

Gracias!
  #5 (permalink)  
Antiguo 03/08/2009, 19:15
 
Fecha de Ingreso: julio-2009
Mensajes: 7
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Como seleccionar algunos registros de varios campos

Ojala puedan revisar el codigo y me digan en que estoy fallando.
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:49.