Ir para conteúdo
Fórum Script Brasil
  • 0

VB6 - Importar planilha Excel para o MDB Access


namon

Pergunta

Para importar uma planilha excel para MDB via código, posso utilizar o código abaixo:

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Private Sub cmdexecuta_Click()

Dim rsdados As Recordset

Dim x As Object

Dim linha As Integer

Dim strvalor_A As String, strvalor_B As Integer, strvalor_C As String

Set x = CreateObject("Excel.Application.8") 'para o office 97/2000

x.Workbooks.Open(App.Path & "\Clientes.xls"

x.Sheets("Clientes").Select

x.Visible = False

For linha = 2 To 10 '65536 e o valor maximo

strvalor_A = x.rows(linha).cells(1).Value 'campo1

strvalor_B = x.rows(linha).cells(2).Value 'campo2

strvalor_C = x.rows(linha).cells(3).Value 'campo3

If strvalor_A = "FLAG" Then

Exit For

Else

sSQl = "INSERT INTO TabelaClientes (campo1 ,campo2 , campo3 )"

sSQl = sSQl & " VALUES ( '" & strvalor_A & "', '" & strvalor_B & "' ,'" & strvalor_C & "' ) "

Set rsdados = db.Execute(sSQl)

End If

Next

x.ActiveWorkbook.Close

x.quit

'Abro um modulo colocando o seguinte codigo

Option Explicit

Public db As ADODB.Connection

Sub AbreBanco()

Dim sPath As String

Set db = New ADODB.Connection

sPath = App.Path & "\dados.mdb"

db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath

End Sub

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------No entanto a planilha que preciso importar contém dados em várias linhas para um mesmo cliente, a saber:

Cabeçalho

Nome cliente(A1) CodCli (B1) valor_a(C1) valor_b(D1) valor_c(E1) valor_d(F1) totalgeral(G1)

cliente1 (A2) 100005(B2) 0,00(C2) 0,00(D2) 1200,00(E2) 0,00(F2) 1442,00(G2)

cliente1 (A3) 100005(B3) 0,00(C3) 0,00(D3) 0,00(E3) 0,00(F3) 0,00(G3)

cliente1 (A4) 100005(B4) 70,00(C4) 0,00(D4) 0,00(E4) 0,00(F4) 0,00(G4)

cliente1 (A5) 100005(B5) 0,00(C5) 52,00(D5) 0,00(E5) 0,00(F5) 0,00(G5)

cliente1 (A6) 100005(B6) 0,00(C6) 0,00(D6) 0,00(E6) 120,00(F6) 0,00(G6)

cliente2 (A7) 190032(B7) 0,00(C7) 97,70(D7) 0,00(E7) 0,00(F7) 487,70(G7)

cliente2 (A8) 190032(B8) 315,00(C8) 0,00(D8) 0,00(E8) 0,00(F8) 0,00(G8)

cliente2 (A9) 190032(B9) 0,00(C9) 0,00(D9) 0,00(E9) 75,00(F9) 0,00(G9)

cliente3(A10)... e assim sucessivamente

8-> A soma de todos os valores de cada cliente fica somente na Célua G(x), primeira linha de cada cliente

-> a quantidade de cada cliente varia conforme os valores que possui em carteira, no máximo de 5 linhas/cliente

No exemplo acima: o cliente1 possui 5 linhas; já o cliente2 possui 3 linhas apenas

Preciso que a rotina importe uma linha para cada cliente, somando TODOS os valores por cliente:

cliente1 (A2) 100005(B2) 70,00(C2) 52,00(D2) 1200,00(E2) 120,00(F2) 1442,00(G2)

cliente2 (A7) 190032(B7) 315,00(C7) 97,70(D7) 0,00(E7) 75,00(F7) 487,70(G7)

É possível via código no VB6??

Quanto à tabela do MDB no VB6, chama-se CredDeb com a seguinte estrutura:

Tabela: CredDeb

Indices: Cod_cliente - Primário

Nome_cliente

Campos: Cod_cliente Texto/8

Nome_cliente Texto/70

Credito1 Dupla/10

Credito2 Dupla/10

Credito3 Dupla/10

Credito3 Dupla/10

Credito4 Dupla/10

Credito5 Dupla/10

Cregeral Dupla/10

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...