Oi Pessoal, bom dia! Tudo bem ?
No excel criamos uma macro para "splitar" um campo e depois transformar as colunas desse split em linha.
Precisamos agora fazer o mesmo procedimento no access.
Conseguimos criar a macro para transformar as linhas colunas, que seria o procedimento B, porém não conseguimos fazer uma que faça o split, que seria o A.
Segue abaixo o comando:
Option Compare Database
Private Sub Command0_Click()
'chamada do sub, onde se define qual a tabela de origem e a de destino
Call Converte("tblExemplo_Origem", "tblExemplo_Destino")
End Sub
Public Sub Converte(ByVal TabOrigem As String, ByVal TabDestino As String)
Dim i As Integer
Dim sql As String
Dim rst As DAO.Recordset
'abre a tabela de origem
sql = "SELECT * FROM tblExemplo_Origem"
Set rst = CurrentDb.OpenRecordset(sql)
With rst
Do While Not .EOF
With .Fields
'percorre os registros da tabela de origem e faz um insert na tabela de destino
For i = 1 To .Count - 1 Step 1
sql = "INSERT INTO tblExemplo_Destino (Demanda, SiglasEnvolvidas) VALUES ('" & .Item(0).Value & "','" & .Item(i).Value & "');"
CurrentDb.Execute (sql)
Next i
End With
.MoveNext
Loop
End With
Set rst = Nothing
End Sub
No excel criamos uma macro para "splitar" um campo e depois transformar as colunas desse split em linha.
Precisamos agora fazer o mesmo procedimento no access.
Conseguimos criar a macro para transformar as linhas colunas, que seria o procedimento B, porém não conseguimos fazer uma que faça o split, que seria o A.
Segue abaixo o comando:
Option Compare Database
Private Sub Command0_Click()
'chamada do sub, onde se define qual a tabela de origem e a de destino
Call Converte("tblExemplo_Origem", "tblExemplo_Destino")
End Sub
Public Sub Converte(ByVal TabOrigem As String, ByVal TabDestino As String)
Dim i As Integer
Dim sql As String
Dim rst As DAO.Recordset
'abre a tabela de origem
sql = "SELECT * FROM tblExemplo_Origem"
Set rst = CurrentDb.OpenRecordset(sql)
With rst
Do While Not .EOF
With .Fields
'percorre os registros da tabela de origem e faz um insert na tabela de destino
For i = 1 To .Count - 1 Step 1
sql = "INSERT INTO tblExemplo_Destino (Demanda, SiglasEnvolvidas) VALUES ('" & .Item(0).Value & "','" & .Item(i).Value & "');"
CurrentDb.Execute (sql)
Next i
End With
.MoveNext
Loop
End With
Set rst = Nothing
End Sub