Help!

Problemen met uw pc? De vrijwilligers van Oplossing.be zoeken gratis met u mee! 8)

Meer weten over Oplossing.be?

Hoe stel ik een vraag?

Hulp bij posten

Recent

Auteur Topic: Herstellen excel bestand  (gelezen 13780 keer)

0 leden en 1 gast bekijken dit topic.

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #15 Gepost op: 17 augustus 2019, 19:32:08 »
éérste poging

loopt vast op
Citaat
   .Refresh BackgroundQuery:=False

Gebruikte code
Sub Macro1()
' Macro1 Macro
    Application.CutCopyMode = False

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= “ODBC;DSN=DD-Reflex-SRV;ServerName=000.000.00.000.0000; _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ= DD;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
    .CommandText = "select OudLokArtDatVolg, Lokatie, Artikel, BeginVoorraadSt, MutatieSt, " _
        & "BeginVoorraadKg, MutatieKg, Soort, DebCred, Tekst, Datum, VolgNummer, Partij," _
        & "PartijTekst, Prijs, VoorraadMutatieReden, Reserve, VerkoopArtikel, ChargeNummer, " _
        & "DouaneStatus, PalletNummer, InterneBoeking, SoortMutatie, Res2, Res3 " _
        & "from DD.Vrd.Vrd"
    .Refresh BackgroundQuery:=False

    End With
End Sub

Alvast bedankt

Groetjes,
Georgyboy
« Laatst bewerkt op: 17 augustus 2019, 19:38:39 door Georgyboy »

Offline pitufo

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 937
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #16 Gepost op: 18 augustus 2019, 09:35:22 »
Hey,

Citaat
t is all niet dat oar snien, 't is all die kruljes legn
Een beredeneerd gokje: West-Vloandern !

Citaat
loopt vast op     .Refresh BackgroundQuery:=False
Zie je wel dat we bij het begin moesten beginnen?

Ik heb je laatste CommandText even vergeleken met die uit je opgenomen macro en die ziet er goed uit wat de opsomming van de velden betreft, maar "from DD.Vrd.Vrd" moet zijn (ik kan me niet over DD uitspreken): ofwel "from DD.Vrd Vrd" ofwel "from DD.Vrd"

Als je die corrigeert en het gaat nog niet zijn er 2 mogelijke oorzaken:
- er zit iets fout in "With ActiveSheet.ListObjects.Add......QueryTable"
- je hebt onvoldoende rechten
In beide gevallen zal de code dan op dezelfde regel een foutmelding geven, en in geen geval kan ik je daar bij assisteren. Enkel je ict-dienst zal je daarbij kunnen helpen.

Van zodra dat goed gaat, en dat zál, tenminste als ict niet tegenwerkt (wat ik in sommige organisaties helaas al heb weten gebeuren), moet je je nog enkel met de CommandText bezig houden. Krijg je dan nog foutmeldingen, dan weet je tenminste zeker waar het moet gezocht worden.

Ondertussen hou ik mijn fingers crossed !

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #17 Gepost op: 18 augustus 2019, 10:41:09 »
Hey Pitufo

hoe kan je het raden  ;D
t is all niet dat oar snien, 't is all die kruljes legn
Heb in het laatste vb XX.... vervangen door "DD" makkelijker leesbaar voor mij op de aangepaste code

Kijk verder met ICT wanneer het voor hun past

Fijne zondag !
Georgyboy


Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #18 Gepost op: 22 augustus 2019, 19:27:21 »
Hey Putifo,

Ben zo blij als een kind in een spekkewinkel (snoepwinkel)  :D
Door jou vooral hiermee weer véél geleerd voor mij thans.

Code werkt super, wel nog beter filteren, maar is al een hele stap vooruit . dikke merci daarvoor  _/-\o_

Sub Macro3()


 Application.CutCopyMode = False
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=XXXXXXX-YYYYYY-SRV;ServerName=00000000000000;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=XXXXXXX;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
    .CommandText = "select Artikel,soort,lokatie, datum from XXXXXXX.Vrd where chargenummer = 14800"

    .Refresh BackgroundQuery:=False
End With


End Sub


'Andere te gebruiken :
'Lokatie Artikel Omschrijving    Art + omschrijving  BeginVoorraadSt MutatieSt
'BeginVoorraadKg MutatieKg   Soort   DebCred Tekst   Datum   VolgNummer
'Partij  Prijs   VoorraadMutatieReden    VerkoopArtikel  ChargeNummer
'InterneBoeking  SoortMutatie

Offline pitufo

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 937
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #19 Gepost op: 24 augustus 2019, 11:36:21 »
YES !!
Dat betekent dus dat die ene mogelijke hinderpaal voor eens en altijd weggewerkt is.
Het enige wat je nu nog moet doen is CommandText optimaliseren.

Als je telkens een afwijkende opvraging moet doen kan je misschien best iedere keer een afzonderlijke code schrijven. Het gaat uiteindelijk telkens over één (toegegeven, het kan een langere worden) aan te passen regel.

Citaat
wel nog beter filteren

In je werkende code heb je nu staan "select ... from ... where chargenummer = ..."
WHERE is altijd waar je mee begint, en criteria toevoegen doe je met de operatoren AND en OR. In geval van OR wel altijd goed nadenken waar het gebruik van haakjes vereist is:
"where (x=1 and y=2) or z=3" is iets anders dan "where x=1 and (y=2 or z=3)"

Het is ook perfect mogelijk om x (of y, enz) meermaals te gebruiken, bv:
"where x>10 and x<20 and y>z"

Nog een interessante. Stel dat je 4 verschillende waarden wil vinden:
"where x=100 or x=150 or x=200 or x=250"
is hetzelfde als
"where x in (100,150,200,250)"

Zoals eerder gezegd kan je ook met variabelen werken. Dat is met name aan te raden als je meermaals hetzelfde type van opvraging wil doen.
Stel dat je iedere keer moet kunnen selecteren op chargenummer, artikel en lokatie.
In de bestaande werkwijze zou dat kunnen zijn:
"where chargenummer = 500 and artikel = 'Jonagold' and lokatie = 'kelder'"
Let op de noodzakelijke enkele aanhalingstekens bij alfanumerieke gegevens, die moeten straks terugkomen!

Je voorziet dus een methode waarmee de gebruiker die zoekwaarden kan ingeven. Ik neem hier voor het gemak een werkblad 'Keuzes' waar in kolom A de benamingen staan en in kolom B wordt dan ingevuld: chargenummer in B1, enz.

We gaan de variabelen een andere naam geven dan je databasevelden (is zelfs niet nodig maar wel minder verwarrend).
Vooraleer je databaseconnectie te realiseren haal je die gegevens dus op. Daartoe komt bv. vooraan in je code:
With Sheets("Keuzes")
    zoek_chargenummer = .[B1]
    zoek_artikel = .[B2]
    zoek_lokatie = .[B3]
End With

Dan kan je verdere code er zo uitzien:
.CommandText = "select ... from ... where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and lokatie = '" & zoek_locatie & "'" (Ik heb hier nu wel geen database bij de hand en dus de code uit de losse pols geschreven, hopelijk zit er geen fout in...)

Tja, het is nu terug jouw beurt! Experimenteren en nog experimenteren, denk ik zo!
En als je vast komt te zitten... één adres: oplossing.be!

Succes!
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #20 Gepost op: 24 augustus 2019, 22:29:31 »
We komen net thuis van familie en zie dit allemaal wat je weer doet voor me.

Hartelijk dank voor al je tijd en zéér leerrijke begrijpelijke info. :thumbsup:

Bekijk dit morgen verder en experimenteer verder .
« Laatst bewerkt op: 24 augustus 2019, 22:39:25 door Georgyboy »

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #21 Gepost op: 25 augustus 2019, 11:41:54 »
Maak denk ik een fout

Ondanks al je info, heb ik het nog niet door, sorry dat ik zo´n slechte leerling ben

Loopt vast op:
Citaat
.Refresh BackgroundQuery:=False

Destination:=Range("$A$1")).QueryTable
    .CommandText = "select from XXXXXX.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and locatie = '" & zoek_locatie & "'"
   
    With Sheets("keuzes")
            zoek_chargenummer = .[B1]
            zoek_artikel = .[B2]
            zoek_lokatie = .[B3]
    End With

    [color=red] .Refresh BackgroundQuery:=False[/color]
End With


End Sub


Dit lukte (maar beperkt (iedere keer te zoeken in code veranderen)
Sub Macro3()


 Application.CutCopyMode = False
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=XXXXXXX-YYYYYY-SRV;ServerName=00000000000000;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=XXXXXXX;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
    .CommandText = "select Artikel,soort,lokatie, datum from XXXXXXX.Vrd where chargenummer = 14800"

    .Refresh BackgroundQuery:=False
End With


End Sub

Zo loopt hier vast

[code]    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=XXXXXX-SRV;ServerName=192.168.13.251.1583;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=XXXXXXXXXXXX;ClientVersion=12.00.134.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable[color=red][/color]



Sub Macro3()


 Application.CutCopyMode = False
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=XXXXXX-YYYYYY-SRV;ServerName=192.168.13.251.1583;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=DIERENDONCK;ClientVersion=12.00.134.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
    .CommandText = "select Artikel,soort,locatie from XXXXXXXX.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and locatie = '" & zoek_locatie & "'"
   
    With Sheets("keuzes")
            zoek_chargenummer = .[B1]
            zoek_artikel = .[B2]
            zoek_lokatie = .[B3]
    End With

    .Refresh BackgroundQuery:=False
End With


End Sub

Bedankt Oplossing.be en al zijn helpers
« Laatst bewerkt op: 25 augustus 2019, 18:03:40 door Georgyboy »

Offline pitufo

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 937
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #22 Gepost op: 26 augustus 2019, 09:21:03 »
Hoi,

Ik begin even met de tweede geplaatste code uit je laatste post:
Het deel "With ActiveSheet.ListObjects.Add ... QueryTable" zoals je het de eerste keer werkend had gekregen zal, zolang we over dezelfde database blijven praten, nooit moeten veranderd worden. Ik kan dat niet volledig inschatten natuurlijk, maar ik zie eens "DSN=XXXXXXX-YYYYYY-SRV" staan en eens "DSN=XXXXXX-SRV". Lijkt mij toch een beetje verdacht...

Over naar je eerste en derde geplaatste code:
In de eerste staat "select from XXXXXX.Vrd..."
Select wat ? Je moet wel iets meegeven dat moet geselecteerd worden, hetzij * (= alle velden), hetzij een opsomming van de velden die je wil (zie alle eerdere voorbeelden)

Los daarvan maak je in beide gevallen dezelfde nogal vreemde fout. Dit heeft niets met deze manier van werken te maken maar is de logica zelf in elke soort code. Je gebruikt variabelen waaraan nog geen waarde is toegekend, en verder in je code ken je wel waarden toe...
.CommandText = "select Artikel,soort,locatie from XXXXXXXX.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and locatie = '" & zoek_locatie & "'"
With Sheets("keuzes")
    zoek_chargenummer = .[B1]
    ...   

We zijn het toch eens dat je ook een werkblad "keuzes" hebt voorzien waarin de gebruiker in B1 het chargenummer ingevuld heeft (?)
In dat geval kan het dit zijn:
With Sheets("keuzes")
    zoek_chargenummer = .[B1]
    zoek_artikel = .[B2]
    zoek_lokatie = .[B3]
End With

With ActiveSheet.ListObjects.Add ... QueryTable
    .CommandText = "select Artikel,soort,locatie from XXXXXXXX.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and locatie = '" & zoek_locatie & "'"
    .Refresh BackgroundQuery:=False
End With

Hopelijk kom je er nu wel uit, anders zal ik eens een fictief voorbeeldje in elkaar steken met een ander type database (het simpelste Accessbestand of zelfs een andere Excel kan namelijk als basis dienen!)

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #23 Gepost op: 26 augustus 2019, 19:30:03 »
Hoi Pitufo

Hartelijk dank dat je tot het werkt wil helpen, voel me wat schuldig daardoor, hoe je er alles voor doet  :thumbsup:

Gisteren zat ik volledig in de knoop, vandaag door jou weer een stuk verder.

Code loopt niet vast :)

Heb nu in blad1 de kolomtitels, nog juist de gegevens en we zijn er denk ik, om later te kunnen verfijnen als we wat meer kennis hebben.

Sub Macro3()


 Application.CutCopyMode = False
   
     With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=xxxxxxx-xxxxxx-SRV;ServerName=000.000.00.000.000 ;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=xxxxxxx;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
   
 .CommandText = "select Artikel,soort,lokatie from xxxxxxx.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and lokatie = '" & zoek_lokatie & "'"

With Sheets("keuzes")
    zoek_chargenummer = .[B1]
    zoek_artikel = .[B2]
    zoek_lokatie = .[B3]
End With

        .ListObject.DisplayName = "Tabel_Query_van …………………..."
        .CommandText = "select Artikel,soort,lokatie from xxxxxxx.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and lokatie = '" & zoek_lokatie & "'"
    .Refresh BackgroundQuery:=False
End With


End Sub

Groetjes,
Georgyboy

Offline pitufo

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 937
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #24 Gepost op: 27 augustus 2019, 09:03:50 »
Hey Georgyboy,

In jouw plaats zou ik de code toch leesbaarder willen schrijven.
Het blokje With Sheets("keuzes")...End With zou ik alvast voor het blokje With ActiveSheet.ListObjects.Add...End With plaatsen.
En je hebt nu ook al 2 keer .CommandText binnen dat laatste blokje staan.
Dat kan op zich geen kwaad (als je eerst zegt x=1 en verder x=2 dan is x vanaf dan 2, nietwaar?), maar het oog wil ook wel wat...

Anderzijds, als je géén foutmelding krijgt, en dat blijkt duidelijk uit het feit dat je kolomtitels er staan, dan moet dat in feite betekenen dat geen enkel record is gevonden dat aan al de selectiecriteria voldoet. Hoe dat komt kan ik helaas van hier niet zien.

Ik neem aan dat je zeker weet dat de combinatie van de 3 criteria bestaat in de tabel?
Het kan dan te maken hebben met de notatie in de tabel.
Je zou, bij wijze van proef, kunnen proberen met selecteren enkel op chargenummer, daarna enkel op artikel, enz., en dan zullen we mogelijk meer weten.

Succes!
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #25 Gepost op: 27 augustus 2019, 18:28:23 »
Hey Pitufo

Ik denk dat we er bijna moeten zijn,
In bijlage wat werkt op 1 zoekveld

wat er fout loopt geen verbinding op geen van de 3 zoekvelden

In bijlage een schets

Alvast bedankt :)

Offline pitufo

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 937
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #26 Gepost op: 28 augustus 2019, 09:28:54 »
Hallo Georgyboy,

Citaat
geen verbinding op geen van de 3 zoekvelden
Leid ik daar nu uit af dat je niet één maal, maar meerdere keren een "verbindingsfout" hebt gekregen?
Ik acht het niet heel waarschijnlijk maar het zou eventueel kunnen dat je deze uit een post van lang geleden nog eens moet herbekijken, misschien wel nog eens in samenspraak met ict:
Citaat
In de regel met ActiveSheet.ListObjects.Add...(dus tot en met QueryTable) kunnen waarschijnlijk nog een aantal parameters worden verwijderd

MAAR !!
Nog één van mijn eerdere adviezen:
Citaat
Je zou, bij wijze van proef, kunnen proberen met selecteren enkel op chargenummer, daarna enkel op artikel, enz
Dat heb je dus niet gedaan?

En wat van deze te denken:
Citaat
In de eerste staat "select from XXXXXX.Vrd..."
Select wat ? Je moet wel iets meegeven dat moet geselecteerd worden, hetzij * (= alle velden), hetzij een opsomming van de velden die je wil (zie alle eerdere voorbeelden)
In de code in het Word-document staat opnieuw "select from..."

En alsof het niet genoeg is heb je in diezelfde code meerdere enkele aanhalingstekens zomaar ergens op willekeurige plaatsen toegevoegd en andere verwijderd.
Hier eerst die van mij (ook lang geleden gepost mét uitgebreide uitleg), daaronder jouw laatste 'probeersel':
.CommandText = "select ... from ... where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "' and locatie = '" & zoek_locatie & "'"
.CommandText = "select     from ... where chargenummer = " & zoek_chargenummer & "' and artikel = " ' & zoek_artikel & "' and lokatie = "' & zoek_lokatie & "'"
Ik vrees dat we op die manier nog héél lang bezig kunnen blijven...

Opgeven staat nog steeds niet in mijn woordenboek, dus probeer eens wat verschillende mogelijkheden:
.CommandText = "select Artikel,soort,lokatie, datum from XXXXXXXXX.Vrd where chargenummer = 14800"
.CommandText = "select Artikel,soort,lokatie, datum from XXXXXXXXX.Vrd where chargenummer = " & zoek_chargenummer
.CommandText = "select Artikel,soort,lokatie, datum from XXXXXXXXX.Vrd where artikel = 1260101"
.CommandText = "select Artikel,soort,lokatie, datum from XXXXXXXXX.Vrd where artikel = '1260101'"
.CommandText = "select Artikel,soort,lokatie, datum from XXXXXXXXX.Vrd where artikel = " & zoek_artikel

De 3° en 4° om even te kijken of we daar een verschil in zien, want ondertussen heb ik gemerkt dat artikel mogelijk ook een numeriek gegeven is in de database. Mijn vermoeden is dat het geen rol mag spelen, maar zeker zijn heeft toch mijn voorkeur...
En er bij de 2° en 5° zeker voor zorgen dat blad "keuzes" vooraf is ingevuld én de variabelen deftig worden gelezen!

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #27 Gepost op: 28 augustus 2019, 17:59:33 »
Hey Putifo,

Geloof het of niet, maar het werkt  :) :) :) :) :thumbsup:

Sub Keuzes()

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=………...=Range("$A$1")).QueryTable


With Sheets("keuzes")
    zoek_chargenummer = .[B1]
    zoek_artikel = .[B2]
    zoek_lokatie = .[B3]
End With

.CommandText = "select Artikel,soort,lokatie from XXXXXXX.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "'and lokatie = '" & zoek_lokatie & "'"

  .Refresh BackgroundQuery:=False

End With
End Sub
Ben terug begonnen zoals lukte met SQL vb = chargenummer 4800
en zo weer opgebouwd.
Zat in de knoop met de plaatsing van With, End With
en vooral "" en ' (heb je vorige antwoorden nog eens goed bekeken

Dit heb ik ook geprobeerd, eigenlijk van alles wat niet lukte  :(
Citaat
Je zou, bij wijze van proef, kunnen proberen met selecteren enkel op chargenummer, daarna enkel op artikel, enz

Dat heb je dus niet gedaan?

Ben er nu al zéér gelukkig mee  :)

Bedankt voor al je tijd, nuttige info en vooral je geduld !

Heb er nu al veel van geleerd en hoop zo verder te kunnen leren en ook hier verder op te bouwen

Groetjes,
Georgyboy

Offline pitufo

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 937
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #28 Gepost op: 28 augustus 2019, 18:27:37 »
Citaat
Geloof het of niet, maar het werkt

Toch toch, ik geloof het !
Een pak van mijn hart trouwens !

De code die je nu hebt gepost is op zich goed, maar (ook al kan het voor sommigen op muggenziften lijken) ik zou voor mezelf toch de volgorde wijzigen naar
Sub Keuzes()

With Sheets("keuzes")
    zoek_chargenummer = .[B1]
    zoek_artikel = .[B2]
    zoek_lokatie = .[B3]
End With

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=………...=Range("$A$1")).QueryTable
    .CommandText = "select Artikel,soort,lokatie from XXXXXXX.Vrd where chargenummer = " & zoek_chargenummer & " and artikel = '" & zoek_artikel & "'and lokatie = '" & zoek_lokatie & "'"
    .Refresh BackgroundQuery:=False
End With

End Sub
Dat maakt de With...End With-structuren leesbaarder en dus begrijpelijker, niet te versmaden als bijvoorbeeld later aanpassingen nodig zijn.

En als je nog over andere dingen struikelt (stonden meerdere tabellen ook niet op de agenda?), laat maar weten.

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Volledig lid
  • **
  • Berichten: 137
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #29 Gepost op: 28 augustus 2019, 19:56:30 »
Super hoe deze site hulp bied   :thumbsup:

Nu je ziet hoe knap dit werkt wil je natuurlijk meer kunnen (weten).

Ik voelde me beschaamd, maar hoop dat we er later beiden kunnen om lachen  :)

Ja, meerdere tabellen zou een volgende vraag kunnen zijn...
Wat ik nu merk is dat ik nu de 3 zoekvelden moet invullen om de gegevens te zien.

Kan dit ook met 1 of meerdere zoekvelden, zoals in het allereerste?
Bvb: zoek chargenummer of partij (Dit is uniek) om al de rest te kunnen vinden.

Zoals een filter en indien nodig meerdere?

Nogmaals super bedankt,

Fijne avond,
Georgyboy

 


www.combell.com