Toon posts:

[VB6] gegevens zoeken in Excel en overzetten naar VB6

Pagina: 1
Acties:
  • 940 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Nadat mijn vorige Topic gesloten werd door te weinig gegevens, probeer ik nog eens na een lange tijd te zoeken achter het probleem maar het maar niet vinden. :) Ik zou wel graag reageren op Topics, maar daarvoor ken ik te weinig van VB6. Kben nog een beginner 8)7

Ik zet gegevens over van excel naar mijn VB6 programma. Maar wanneer ik gegevens wil zoeken in het Excel bestand krijg ik een foutmelding. Ik gebruik volgende code. Deze code werkt wel om een record te zoeken in access.
Ik werk met Excel 2000 en de foutmelding is: The micorsoft jet engine could not find the object "Select * from Leverancier1" ==> Hierbij denk ik dat ik de onjuiste code gebruik.

code:
1
2
3
4
5
If Combo1.ListIndex = 0 Then
Data1.RecordSource = "Select * from Leverancier1 Where Productnummer like '" & txtSearch.Text & "'"
Data1.Refresh
Else
End If


Naamgeving en dergelijke kloppen volledig. Is het niet zo dat de code om te zoeken in access hetzelfde is of voor Excell???
Ik maak gebruik van:
Defaultype= usejet
connect = excel 8.0
En ik heb eens de databasequery geprobeert die je hebt in excel, maar wanneer ik erop druk slaat excel door.
Heeft iemand raad??

[ Voor 8% gewijzigd door Verwijderd op 02-07-2004 15:07 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Heb je wel een connectie gemaakt naar dat Excel bestand?
Heb je in je excel bestand een range cellen de naam 'Leverancier1' gegeven?
Heb je al eens op MSDN gekeken wat de stappen zijn die je moet doen om het te laten werken?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 02 juli 2004 @ 15:07:
Heb je wel een connectie gemaakt naar dat Excel bestand?
Heb je in je excel bestand een range cellen de naam 'Leverancier1' gegeven?
ja ik heb een connectie gemaakt met het bestand maar wanneer je de recordsource gebruikt dan zoek je toch achter de sheet in Excel, niet??

[ Voor 3% gewijzigd door gorgi_19 op 02-07-2004 15:12 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Je zult een cell-range een bepaalde name moeten geven, en de naam van die range gebruik je dan in je FROM.

https://fgheysels.github.io/


Verwijderd

Topicstarter
En gaat dit dan ook als je de gegevens wilt overzetten in een DBGrid??

[ Voor 78% gewijzigd door Verwijderd op 02-07-2004 15:13 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Wat denk je zelf?
Probeer het?
:Z

https://fgheysels.github.io/


  • Ghannes
  • Registratie: Oktober 2002
  • Laatst online: 18-05 19:58
[rml][ VB6] met excel[/rml]

Modbreak:
Als je het niet eens bent met een topic, meldt het dan via een TR of via SM, maar ga dit niet zelf in een topic roepen.

[ Voor 60% gewijzigd door gorgi_19 op 02-07-2004 15:27 ]


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:08
Quick remark: je kan een referentie opnemen naar Excel en dan volgens beproefde VBA/Excel technieken je data opvissen. Kan een stuk beter voor je humeur zijn als je nog niet veel ervaring met database koppelingen ed. hebt.

Verwijderd

Topicstarter
whoami schreef op 02 juli 2004 @ 15:11:
Je zult een cell-range een bepaalde name moeten geven, en de naam van die range gebruik je dan in je FROM.
Ik heb via voorbeeld bestanden van VB6, een code gevonden voor de range op te slaan, maar blijkbaar klopt er nog iets niet in de code.
Foutmelding: Object variable or With block variable not set

Variabelen:
code:
1
2
3
4
Dim exlSheet As Excel.Worksheet
Dim i As Integer
Dim VD(200, 2) As String
Dim exlApp As New Excel.Application



code:
1
2
3
4
5
6
7
With exlApp
    .DisplayAlerts = False
    .Workbooks.Open ("C:\Documents and Settings\Dries\Bureaublad\Be-Casual\04W.xls")
    For i = 1 To 164
        VD(i, 6) = exlSheet.Range("a" + Strings.Trim(Str(i))) 'hier heeft hij dus een foutmelding
    Next i
End With


Is dit de juiste manier om een range vast te stellen??

[ Voor 4% gewijzigd door Verwijderd op 02-07-2004 16:06 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Je kan die range ook rechtstreeks in excel definieren:
excel openen
cellen selecteren
naam toekennen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 02 juli 2004 @ 16:07:
Je kan die range ook rechtstreeks in excel definieren:
excel openen
cellen selecteren
naam toekennen.
Ik heb een range gemaakt in Excel met de naam Model2, maar blijkbaar blijft de fout gelden. Volgens mij is de gebruikte code niet correct voor Excel maar enkel en alleen voor acces

code:
1
2
3
4
If Combo1.ListIndex = 0 Then
Data1.RecordSource = "Select * from Leverancier1 Where Model2 like '" & txtSearch.text & "'"
Data1.Refresh
Else

[ Voor 11% gewijzigd door Verwijderd op 02-07-2004 16:32 ]


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 22:08
Verwijderd schreef op 02 juli 2004 @ 16:05:
[...]

code:
1
        VD(i, 6) = exlSheet.Range("a" + Strings.Trim(Str(i))) 'hier heeft hij dus een


Is dit de juiste manier om een range vast te stellen??
Moet zijn:
code:
1
        VD(i, 6) = exlSheet.Range("a" & Strings.Trim(Str(i)))

Nog makkelijker:
code:
1
        VD(i, 6) = exlSheet.Range("a" & i).value

[ Voor 15% gewijzigd door onkl op 02-07-2004 16:51 ]


Verwijderd

Topicstarter
Ik werk dus met DAO en heb volgend SQL gebruikt maar het probleem is volgend foutmelding:
[Microsoft][ODBC Excel-stuurprogramma] De component FROM bevat een syntaxisfout

Ik zoek al een heeele tijd hoe je kunt gegevens zoeken in Excel en overzetten naar VB6 in een DataGrid, jammer genoeg ben ik er nog niet ingeslaagd. Kan iemand me helpen.

SQL
code:
1
SELECT Model.Omschrijving FROM Model WHERE Model.Omschrijving = 'bloes'

[ Voor 58% gewijzigd door Verwijderd op 05-07-2004 14:39 ]


Verwijderd

Topicstarter
Of kan ik een ander oplossing vinden door een omweg te gebruiken.
Door een excel bestand te importeren in Access. Weet iemand hoe je dit kan doen via code die je in VB6 kunt invullen. Bestaan er daar al voorbeeld bestanden van voor VB6?

  • BestTested!
  • Registratie: Oktober 2003
  • Laatst online: 23-05 20:37
Verwijderd schreef op 05 juli 2004 @ 14:49:
Of kan ik een ander oplossing vinden door een omweg te gebruiken.
Door een excel bestand te importeren in Access. Weet iemand hoe je dit kan doen via code die je in VB6 kunt invullen. Bestaan er daar al voorbeeld bestanden van voor VB6?
Volgens mij zou die query gewoon moeten werken hoor, als je alle je instellingen goed hebt staan tenminste.
Een Excel bestand naar een Access bestand omzetten kan natuurlijk ook, dan moet je nog wel zorgen dat je dat access bestand goed kan benaderen natuurlijk.
Ik doe dit normaal door de tabel op te slaan als een 'comma-seperated-file' (of iets dergelijks was het). En dit bestand dan weer in te lezen in Access. Je hebt dan nog behoorlijk wat controle over de datatype, veldname en keys.

Verwijderd

Topicstarter
Ja ik heb een mogelijkheid in het programma gestoken om het overtezetten in het accesbestand.
Nu zit ik nog met een probleem namelijk: is het mogelijk een recordsource opteslaan in een variable? En hou zou dit kunnen? Ik dacht aan:

code:
1
2
3
Dim recordsource As Adodc
Adodc1.RecordSource "Select * from Tabel1"
recordsource = Adodc1.RecordSource


Maar blijkbaar gaat dit niet:
foutmelding: Object variabele or with block variabele not set
Pagina: 1