Otherside Posted March 19, 2014 Report Share Posted March 19, 2014 (edited) Boas eu tenho uma tabela do género: E quero criar uma macro para adicionar estes campos a uma tabela numa base de dados ! Até agora tenho isto: Dim adoCN As ADODB.Connection Dim sConnString As String Dim sSQL As String Dim lRow As Long, lCol As Long sConnString = "Provider=sqloledb;Server=servername;Database=NORTHWIND;User Id=xx;Password=password" Set adoCN = CreateObject("ADODB.Connection") adoCN.Open sConnString Para ligar a base de dados e depois tenho isto: For lRow = 2 To 11 sSQL = "INSERT INTO YOUR_TABLE (FIELD1, FIELD2, FIELD3) " & _ " VALUES (" & _ "'" & Sheet1.Cells(lRow, 1) & "', " & _ "'" & Sheet1.Cells(lRow, 2) & "', " & _ "'" & Sheet1.Cells(lRow, 3) & "')" adoCN.Execute sSQL Next lRow adoCN.Close Set adoCN = Nothing Agora queria modificar o código para conseguir usar numa tabela. A tabela tem os seguintes campo: id folha (Nome da folha do excel) id_pais( Paris supostamente é 1 e por ai a fora) ano valor Alguém me pode ajudar a desenvolver o código sql para isto ? Não estou habituado a usar vb , estou um pouco á nora ! Edit: Estive de volta do código e cheguei a isto: For linha = 2 To 7 For coluna = 2 To 21 sSQL = "INSERT INTO dbo.IndicadorZona (id_indicador, id_zona,ano,valor) " & _ " VALUES (" & _ "'" & idindicador & "', " & _ "'" & idzona & "', " & _ "'" & ActiveSheet.Cells(linha, 1) & "', " & _ "'" & ActiveSheet.Cells(linha, coluna) & "')" adoCN.Execute sSQL idzona = idzona + 1 Next coluna Next linha O que parece ? Edited March 20, 2014 by Otherside Link to comment Share on other sites More sharing options...
mlcalves Posted March 20, 2014 Report Share Posted March 20, 2014 Bom dia, Mas essa tabela criaste na bd para o efeito? É só para exportar uma vez? Link to comment Share on other sites More sharing options...
Otherside Posted March 20, 2014 Author Report Share Posted March 20, 2014 (edited) Obrigado pelas resposta mas ficou a funcionar 🙂 Dim linha As Integer Dim coluna As Integer Dim idindicador As Integer Dim idzona As Integer idindicador = 1 idzona = 1 For linha = 2 To 7 For coluna = 2 To 21 sSQL = "INSERT INTO dbo.IndicadorZona (id_indicador, id_zona,ano,valor) " & _ " VALUES (" & _ "'" & idindicador & "', " & _ "'" & idzona & "', " & _ "'" & ActiveSheet.Cells(linha, 1) & "', " & _ "'" & ActiveSheet.Cells(linha, coluna) & "')" adoCN.Execute sSQL idzona = idzona + 1 Next coluna Next linha Edited March 20, 2014 by Otherside Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now