Access - Asignación de filas a campos

 
Vista:

Asignación de filas a campos

Publicado por Quim (14 intervenciones) el 07/06/2018 11:49:31
Buenos días!
Aquí otra vez, para variar. Esta vez con algo que no sé por dónde me falla. Traedme luz, por favor!!
A ver, empiezo. Tengo una tabla llamada [Tabla2] con solo un campo [JobSpeed] con la siguiente estructura:

JobSpeed
112
300m/s FINE
113
200m/s CMD
150m/s FINE
104
50m/s FINE
108
44m/sFINE
136
32m/s CMD
115m/s FINE

Necesito que al ejecutar un comando, me quede una tabla nueva [Tabla3] con la siguiente estructura
Job Vel1 Vel2
112 300m/s FINE
113 200m/sCMD 150M/S fine
104 50m/s FINE
108 44m/s FINE
136 32 m/s CMD 115m/s FINE

Estoy usando lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Dim rstOrigen3 As DAO.Recordset, _
    rstDestino3 As DAO.Recordset
 
Set rstOrigen3 = CurrentDb.OpenRecordset("Tabla2")
Set rstDestino3 = CurrentDb.OpenRecordset("Tabla3")
 
Do While Not rstOrigen3.EOF
    Do While InStr(1, rstOrigen3!JobSpeed, "mm/sec") = 0 And Not rstOrigen3.EOF 'Mientras no lleguemos al final ni contenga mmsec
            rstDestino3.AddNew
            rstDestino3!Job = rstOrigen3!JobSpeed
            rstDestino3.Update
            rstOrigen3.MoveNext
            If rstOrigen3.EOF Then Exit Do
    Loop
            Do While InStr(1, rstOrigen3!JobSpeed, "FINE") = 0 And Not rstOrigen3.EOF
                 rstDestino3.Edit
                 rstDestino3!Vel1 = rstOrigen3!JobSpeed
                 rstDestino3.Update
                 rstOrigen3.MoveNext
                 If rstOrigen3.EOF Then Exit Do
            Loop
                 rstDestino3.Edit
                 rstDestino3!Vel2 = rstOrigen3!JobSpeed
                 rstDestino3.Update
                 rstOrigen3.MoveNext
                 If rstOrigen3.EOF Then Exit Do
Loop
    rstOrigen3.Close
    rstDestino3.Close
    Set rstOrigen3 = Nothing
    Set rstDestino3 = Nothing


Qué hago mal????

Ayuda, por favor!!!!
Mil millones de gracias!!!!
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

Asignación de filas a campos

Publicado por Anonimo (3319 intervenciones) el 10/06/2018 11:14:16
Un poco de código que espero sea útil:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Function Encadena() As String
Dim rstOrigen As DAO.Recordset, L_Job As Long, L_Vel1 As String, L_Vel2 As String, Cuenta&
Set rstOrigen = CurrentDb.OpenRecordset("Tabla2", , dbReadOnly)
With rstOrigen
.MoveLast: .MoveFirst
If .RecordCount = 0 Then Encadena = "no hay datos": Exit Function
Do While Not .EOF
    If InStr(!jobspeed, "/") = 0 And Val(!jobspeed) <> 0 Then
        If L_Job <> 0 And Len(Trim(L_Vel1 & L_Vel2)) <> 0 Then CurrentDb.Execute "insert into tabla3 (job, vel1, vel2) values(" & L_Job & ", '" & L_Vel1 & "', '" & L_Vel2 & "')": Cuenta = Cuenta + 1
        L_Job = Val(!jobspeed): L_Vel1 = "": L_Vel2 = ""
        Else
        If InStr(!jobspeed, "FINE") <> 0 Then L_Vel1 = !jobspeed
        If InStr(!jobspeed, "CMD") <> 0 Then L_Vel2 = !jobspeed
        End If
    .MoveNext
    Loop
If L_Job <> 0 And Len(Trim(L_Vel1 & L_Vel2)) <> 0 Then CurrentDb.Execute "insert into tabla3 (job, vel1, vel2) values(" & L_Job & ", '" & L_Vel1 & "', '" & L_Vel2 & "')": Cuenta = Cuenta + 1
.Close
End With
Set rstOrigen = Nothing
Encadena = "Se añadieron " & Cuenta & " nuevos registros"
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Asignación de filas a campos

Publicado por Quim (14 intervenciones) el 11/06/2018 10:25:35
Funcionaaaaaaa!!!! Funcionaaaaaaaaaa!!!!!
Mil gracias!!!!!!!!
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