Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

aninha___10

Erro no Código

Recommended Posts

Boa noite,

 

Estou tentando copiar o conteúdo de um arquivo de texto e gravar num banco SQL, porém durante a compilação está acusando um erro 9 Subscript of range, porém não consegui visualizar no código em qual momento estourei o vetor, ou estou tentando escrever em uma posição inexistente, abaixo segue meu código:

 

Dim servidor, usuario, senha, banco As String

Dim sql As String

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

 

 

 

Private Sub cmdimportar_Click()

Dim vResult, X, caminho As String

Dim vetor As Variant, aux(0 To 3) As String

Dim F As Long

Dim i As Integer

 

F = FreeFile

caminho = txtcaminho.Text /* esse caminho o usuário informa no momento de indicar o arquivo a ser aberto*/

 

Open caminho For Input As #F

 

Do While Not EOF(F)

 

Input #1, X

 

vetor = Split(X, , 4)

 

/* Nesse trecho é acessado a tabela e realizado o insert a partir do vetor que quebrou a string do arquivo de texto*/

/* O arquivo de texto está no formato:*/

/*Codigo Nome Conta Telefone*/

/* Ex.:

01 Roberta 00015 4588-1010*/

 

sql = "INSERT INTO CAMPANHA " & _

"(Codigo, Nome, Conta, Telefone) " & _

"VALUES (" & Val(vetor(0)) & ", '" & _

vetor(1) & "'," & _

Val(vetor(2)) & "," & _

vetor(3) & "')"

 

rs.CursorLocation = adUseClient

rs.Open sql, cn, adOpenForwardOnly, adLockOptimistic

 

Loop

 

Close #1

 

End Sub

 

Private Sub Form_Load()

 

cn.Provider = "SQLOLEDB" 'provedor de acesso

cn.Properties("Data Source").Value = "Home\SQLExpress" 'servidor

cn.Properties("Initial Catalog").Value = "DBCampanha" 'nome do banco

cn.Properties("User ID").Value = "sa" 'usuario

cn.Properties("Password").Value = "030980" 'senha

cn.Open 'abre conexao

 

MsgBox "Conexão efetuada com sucesso!!"

 

 

 

End Sub

 

 

Obrigada se alguém puder me auxiliar

 

Até mais

 

:wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que seja aqui

vetor = Split(X, , 4)

Você nao criou um vetor na variavel vetor, você só declarou ela como Variant

 

sql = "INSERT INTO CAMPANHA " & _
"(Codigo, Nome, Conta, Telefone) " & _
"VALUES (" & Val(vetor(0)) & ", '" & _
vetor(1) & "'," & _
Val(vetor(2)) & "," & _
vetor(3) & "')"
Aqui tambem, você usou ela como vetor, mas ela nao é.

 

Tente declara um vetor nela, do mesmo jeito que a aux(), e veja se da certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.