Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Herstellen excel bestand  (gelezen 41542 keer)

0 leden en 2 gasten bekijken dit topic.

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #30 Gepost op: 29 augustus 2019, 09:24:44 »
Citaat
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
Ja hoor, geen enkel probleem. We gaan de aanpak daar lichtjes (geen paniek: hιιl lichtjes) voor wijzigen.
Alleen moet ik dadelijk naar een vergadering die wel eens tot een stuk in de nacht zou kunnen duren (neen neen ik ben gιιn politieker). Of niet...

Misschien een goede oefening voor jou ondertussen: al eens over nadenken?
Een hint kon je daarvoor al vinden in reactie #13:
Citaat
Na ".CommandText =" staat er gewoon... een tekst!
Dat impliceert dat je die niet letterlijk in je code moet schrijven
Lastige leraar, hι ?
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #31 Gepost op: 30 augustus 2019, 06:02:04 »
Goedemorgen  ;D


ook meerkeuze mogelijk ? of ….. of ….
anders en/of ?
wil misschien al teveel ?

Deze werkt goed
Sub Macro3()


 Application.CutCopyMode = False
   
     With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=………………….    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=…………………..   
 & "CodePageConvert=…………………………………………………...", Destination:=Range("$A$1")).QueryTable
     
   
    .CommandText = "select Artikel,soort,lokatie, datum from XXXXXXXXX.Vrd where chargenummer = 14800"

    .Refresh BackgroundQuery:=False
End With

End Sub


Groetjes,
Georgyboy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #32 Gepost op: 30 augustus 2019, 10:53:35 »
Hoi,

Ik snap niet direct de bedoeling van het toevoegen van code in je laatste post. We waren toch al veel verder(!?)

Even terug naar je voorlaatste post.
Citaat
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
Het is duidelijk dat je met een standaard CommandText kan werken (al dan niet met variabelen) als je telkens hetzelfde type opvraging wil doen.
Voor elk afwijkend type opvraging heb je vanzelfsprekend een andere opbouw nodig van die CommandText.
Dat wil nog niet zeggen dat je die daarom telkens in je code moet herschrijven.

Ik heb een voorbeeldje gemaakt met 3 mogelijke maar geen enkele verplichte keuze, en vervolgens wordt de CommandText door vba zelf opgebouwd, afhankelijk van de vraag voor welk veld al dan niet een waarde is ingevuld.
Commandtext is m.a.w. een variabele geworden die ik 'opdracht' heb genoemd, en meteen ook maar de database als variabele genomen.

Hierbij dus een Excel- en een Access-bestand. Om er mee te spelen dien je ze enkel in dezelfde map op te slaan, welke heeft geen belang.
Wees gerust, ik ben nog steeds niet op mijn hoofd gevallen: de fictieve gegevens in de tabel (500 records) zijn door de pc gemaakt!
Voor de lol laat ik de gebruiker ook kiezen waar de import heen moet.

In de vba-code staat nog enkel letterlijk welke velden je in het resultaat wil krijgen (select ...) Zowel de namen van de zoekvelden als de waarden (where ... = ...) zitten vervolgens in variabelen. Dat houdt in dat kolom A op "keuzes" de exacte veldnamen moet bevatten zoals in de database!

Dit Excel-voorbeeld zal je ook kunnen laten werken met je eigen database! Ongetwijfeld vind je zelf wel de paar zaken die je daarvoor in de code moet wijzigen. Zoniet: vergeet eventueel de variabelen db_bron en sql_bron, en vervang enkel de regel "With ActiveSheet...QueryTable" door degene waar je nu al mee werkt.

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

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #33 Gepost op: 31 augustus 2019, 13:18:08 »
Hey Putifo

Hartelijk dank !

Heb dit geprobeerd op het werk en thuis
op het werk enkel via extern bureaublad is er acces 2016 via Microsoft 365
Thuis lukt acces niet goed (krijg steeds PDF)
is een ACCDB bestand ?

op beiden loopt dit vast op Refresh………..

Waarschijnlijk ligt dit wιιr aan mij

Heb je code afgeprint en probeer deze te verstaan om te gebruiken

Ben een heel lastige leerling maar wil doorzetten tot de klik er komt

Groetjes
Georgyboy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #34 Gepost op: 31 augustus 2019, 13:49:15 »
Hallo Georgyboy,

Dat is inderdaad een accdb-bestand. Ik had het in Access 2007 gemaakt om eventuele moeilijkheden te vermijden.
Citaat
Thuis lukt acces niet goed (krijg steeds PDF)
Ik heb nu bij wijze van test gedaan alsof deze bestanden niet op mijn pc gestaan, en ze dus van het forum gedownload en opgeslagen in een nieuwe map. Werkt perfect zoals verwacht.

Anderzijds hoef je het Access-bestand helemaal niet te openen om de (Excel-)vba-werking te testen.
Probeer het misschien eventjes op die manier aan de praat te krijgen. Daarna moet dat ook lukken met je ERP-database mits de enkele aanpassingen uit mijn voorgaande post.

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

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #35 Gepost op: 31 augustus 2019, 16:50:49 »
Hallo Putifo,

Ik denk dat we er bijna zijn in deze voor mij althans grote vooruitgang, :)

zie je het nog zitten ? , want ik heb al veel van je gevraagd  0:-)

De code loopt goed tot: (ook met F8)
Citaat
.Refresh BackgroundQuery:=False

Sub db_selectie()

Dim naam(1 To 3)
Dim zoek(1 To 3)

With Sheets("keuzes")
    For i = 1 To 3
        naam(i) = .Cells(i, 1)
        zoek(i) = .Cells(i, 2)
    Next i
    uitvoer = .Cells(5, 2)
End With

Select Case uitvoer
    Case "blad 'resultaat' (bestaande gegevens overschrijven)"
        Sheets("resultaat").Select
        Cells.ClearContents
    Case "nieuw werkblad"
        Sheets.Add after:=Sheets(Sheets.Count)
    Case "nieuwe werkmap"
        Workbooks.Add
End Select



opdracht = "select Id, Artikel, Lokatie, Chargenummer, Datum, Tekst from " & DDDDDDDD & ".vrd "
volgende = False
For i = 1 To 3
    If zoek(i) <> "" Then
        If volgende = False Then
            opdracht = opdracht & "where " & naam(i) & " = " & zoek(i) & " "
            volgende = True
        Else
            opdracht = opdracht & "and " & naam(i) & " = " & zoek(i) & " "
        End If
    End If
Next i

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=DDDDDDDDD-RRRRRRR-SRV;ServerName=000.000.00.00 .0000;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=DDDDDDDDD;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
    .CommandText = opdracht
    .Refresh BackgroundQuery:=False
End With


End Sub

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #36 Gepost op: 31 augustus 2019, 21:02:44 »
Hoi,

Ik zie het al onmiddellijk (denk ik toch).

Even een opmerking: duidelijke en volledige feedback is meestal welkom, dat is in ons beider belang, niet?
Heb je het bv. opnieuw geprobeerd met mijn meegestuurd Access voorbeeldbestand? En werkt dat?

Daarin gebruikte ik voor de database ook een variabele., vandaar 2 maal '&' in de opbouw van de CommandText.
Nu heb jij staan:
opdracht = "select Id, Artikel, Lokatie, Chargenummer, Datum, Tekst from " & DDDDDDDD & ".vrd "
Dat zou alleen werken als je eerst een variabele DDDDDDDD hebt waarin je de databasenaam stopt.
In het andere geval moet het (MISSCHIEN) zijn:
opdracht = "select Id, Artikel, Lokatie, Chargenummer, Datum, Tekst from DDDDDDDD.vrd "Inderdaad "misschien" want ik had het veld Id in mijn voorbeeld database staan, maar heb jij dat ook in die van jou ??

Op naar de volgende poging !
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #37 Gepost op: 01 september 2019, 10:43:24 »
Dag Putifo

Betreft Je test excel van acces , heb ik alles letterlijk overgenomen
Helaas weet ik niet meer de info die in acces staat om te kunnen testen, kan het niet meer openen om te kijken welke velden we kunnen gebruiken in excel.

Citaat
Inderdaad "misschien" want ik had het veld Id in mijn voorbeeld database staan, maar heb jij dat ook in die van jou ??
Citaat

Zo te zien wel
opdracht = "select Id, Artikel, Lokatie, Chargenummer, Datum, Tekst from " & db_bron & ".vrd "
volgende = False

Betreft de echte database is er een voorbeeld van de excel code en wat er werkelijk in de ERP database komt te staan .

Moet nu weg, maar probeer alles verder uit en probeer je raad te volgen.

Bedankt en nog een fijne zondag  :thumbsup:

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #38 Gepost op: 01 september 2019, 10:54:28 »
Citaat
Moet nu weg
Ik ook !!
Maar toch nog heel vlug dit:
Citaat
weet ik niet meer de info die in acces staat
Als je in kolom B de 3 invulvakjes leeg laat moeten alle records geοmporteerd worden.

Citaat
Zo te zien wel
opdracht = "select Id, Artikel...
Hoe zeker ben je daar van? In je eerste macro via de macrorecorder (zie je reactie #8) zie ik geen Id staan (?)
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #39 Gepost op: 08 september 2019, 19:01:59 »
Hoi Pitufo,

Heb deze week een moeilijke week gehad om verder te doen, hoop eind deze week verder te kunnen doen en je te mogen bedanken voor het mooie eindresultaat.
Nu al bedank voor al je gedane steun  :thumbsup:

Tot later deze week, als het nog kan ?

Groetjes,
Georgyboy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #40 Gepost op: 09 september 2019, 08:54:33 »
Citaat
Tot later deze week, als het nog kan ?
Ja natuurlijk, onder het motto "moeilijk gaat ook" dus. Ik heb me in de loop van dit topic namelijk wel eens de bedenking gemaakt dat je er vrijwel zeker binnen de 5 minuten helemaal mee weg zou zijn geweest als we even samen achter je pc hadden kunnen zitten.
Maar ik blijf er gerust in: we komen er wel!
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #41 Gepost op: 09 september 2019, 19:55:45 »
Dank je wel,

De fout die ik heb op de 3 bestanden
2 x deze van jou excel/access (1 x op het werk, 1 x thuis)
1 x op het werkelijke bestand

Hebben alle dezelfde fout:
[.Refresh BackgroundQuery:=False]

Mijn kennis is te klein om te weten waar het aan ligt.

Bekijk dit graag verder, kijk er op als op een zieke koe

Groetjes
Georgyboy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #42 Gepost op: 11 september 2019, 12:07:45 »
OK, even "reculer pour mieux sauter" dan maar.

Mijn vorige voorbeeld met Excel + Access heb ik vervangen door 2 Excel-files.
Sla beide bestanden eens op in een nieuwe map (beide in dezelfde map dus).
Met het bestand "database" hoef je verder niets te doen (er in kijken mag...)

Met het bestand "db_test" gaan we gegevens ophalen uit "database" (laat "database" gesloten!)
Begin eens met "Inlezen" te klikken zonder ook maar iets anders te doen. Dat lukt ?
Dan kan je vervolgens wat 'filters' gaan invullen (ιιn of meerdere) in B1 tot B3. Dat lukt ook ?

Als je antwoord 2 keer ja is kunnen we de stap(pen) zetten naar je eigen database.
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #43 Gepost op: 12 september 2019, 17:42:08 »
Dag Putifo

Bedankt dat je wil verder doen tot het lukt :)
Heb de 2 bestanden opgeslagen in een aparte map, door rechts te klikken en doel opslaan in de nieuwe map.

Krijg net dezelfde foutmelding als bij de andere. Sorry hoor !

Groetjes,
Georgyboy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #44 Gepost op: 13 september 2019, 09:58:35 »
Hoi,

Vreemd...
Citaat
Heb de 2 bestanden opgeslagen in een aparte map
Je hebt toch beide bestanden in dezelfde map gezet ?

Als dat zo is, probeer dan nog eens opnieuw, enkel met de bedoeling een nieuwe afbeelding te bezorgen waarop het venster "Lokale variabelen" en de kolommen daarin groot genoeg zijn om alles te kunnen zien.

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

 


www.combell.com