Help!

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

Hulp bij posten

Recente topics

Auteur Topic: Herstellen excel bestand  (gelezen 41529 keer)

0 leden en 1 gast bekijken dit topic.

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #45 Gepost op: 13 september 2019, 10:25:05 »
Hey Putifo

Beide staan samen in een aparte map (dus enkel die 2 bestanden),
Het is wel een submap !

Hopelijk duidelijker voor je, voor mij alvast zeer leerrijk dit te mogen ontdekken

Groetjes,
Georgyboy

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #46 Gepost op: 13 september 2019, 10:37:09 »
Extra info

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #47 Gepost op: 13 september 2019, 13:08:23 »
Haha, we zien een nieuw lichtpuntje dankzij je nieuwe jpg!

Een losstaand advies eventjes, dus ook raadzaam voor alle mogelijke andere toepassingen: probeer altijd spaties te vermijden in map- en bestandsnamen. Om ze leesbaar te houden is een underscore een prettig alternatief.
Dus "forum_oplossing" in plaats van "forum oplossing" (de andere submappen idem natuurlijk)
Volledigheidshalve: het kan ook in de vba-code worden opgevangen, maar ik ben daar geen voorstander van.

Spaties weg dus, en 't zal meteen lukken (een gewaagde uitspraak, niet?  0:-) )
"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 #48 Gepost op: 13 september 2019, 15:20:12 »
Lukt meteen met de laatste 2 excel bestanden (van excel naar excel)  :) :) :) :)  :thumbsup: _/-\o_

Sorry, wat ben ik ne lastige voor je

Nu eventjes voor mijn kleinkind en ben benieuwd hoe de andere het doen  :-[



Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #49 Gepost op: 13 september 2019, 15:37:18 »
Zie je wel... 't is dus heel waarschijnlijk ook de reden waarom het met Access niet wou lukken.
Je hebt ook wat tests gedaan door filters (één of meer) te gebruiken in kolom B? Niet dat ik daar nog moeilijkheden voorzie, maar even proberen om de werking te verduidelijken kan nooit kwaad...
Daarna zetten we de finale stap naar je echte 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 #50 Gepost op: 13 september 2019, 19:58:05 »
Blij dat we weer een stap vooruit zijn

Op onderstaande nog vast op Refresh…...

In bijlage testje access naar excel

Hier op werkelijk bestand wel "ID" verwijderd
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 Artikel, Lokatie, Chargenummer, Datum, Tekst from " & Dierendonck & ".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=DDDDDDDD-RRRRRR-SRV;ServerName=000.000.00.000.0000;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=DDDDDDDD;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable
    .CommandText = opdracht
   [color=red] .Refresh BackgroundQuery:=False[/color]
End With

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #51 Gepost op: 13 september 2019, 20:07:13 »
Alle testen werken met de 2 excel bestanden  :thumbsup:  :)

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #52 Gepost op: 15 september 2019, 11:21:05 »
Hey Putifo,

Alles zoeken lukt, filters lopen hier nog vast maar toch ……………..

Het lukt !!!! op het echte bestand, wat ben ik gelukkig dat ik het dank zij jou gevonden heb  _/-\o_ _/-\o_ _/-\o_ :) :) :)
Was gisteren jarig, misschien daardoor wat wijzer ?

select Artikel, Lokatie, Chargenummer, Datum, MutatieSt, soort from DDDDDDD.vrd
From was leeg dit was "from .vrd"

Nu kunnen we het bestand met filters optimaliseren
later datum aanpassing 20190914 naar 14/09/2019
ook een draaitabel van de selectie

Hoe kan ik je bedanken Putifo ? dikke merci

Ne gelukkigen Georgyboy

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #53 Gepost op: 15 september 2019, 11:56:00 »
Iets gevonden in de verbinding "VRDWHERE" is aan elkaar, met tussenspatie lukt de filter
select Artikel, Lokatie, Chargenummer, Datum, MutatieSt, soort from DDDDDDDD.[color=red]vrdwhere[/color] Artikel = 1260229
Groetjes
Georgyboy

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Herstellen excel bestand
« Reactie #54 Gepost op: 15 september 2019, 12:27:16 »
filters lopen hier nog vast maar toch ……………..
select Artikel, Lokatie, Chargenummer, Datum, MutatieSt, soort from DDDDDDD.vrdFrom was leeg dit was "from .vrd"
Iets gevonden in de verbinding "VRDWHERE" is aan elkaar, met tussenspatie lukt de filter
select Artikel, Lokatie, Chargenummer, Datum, MutatieSt, soort from DDDDDDDD.[color=red]vrdwhere[/color] Artikel = 1260229

Georgyboy,

Als je in de VB-editor, Menu "Foutopsporing", "VBAProject compileren" gebruikt, dan worden toch alle fouten in de code netjes gevonden en aangeduid, meestal met een melding over wat er precies mis is....
Je moet het gereedschap wel gebruiken, hé...  ;D

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #55 Gepost op: 15 september 2019, 20:51:38 »
Hey Bedankt SoftAid,

Ken dit niet en zal het zeker uit testen

Leer hier iedere dag bij  :)

Offline Georgyboy

  • Ervaren lid
  • ***
  • Berichten: 314
  • Geslacht: Man
  • Oplossing.be
Re: Herstellen excel bestand
« Reactie #56 Gepost op: 16 september 2019, 17:53:48 »
Foutje gevonden

"DDDDDDD.vrd " Spatie na vrd

Werkt select Artikel, Lokatie, Chargenummer, Datum, MutatieSt, soort from DDDDDDDD.vrd where Chargenummer = 16036
Was fout "vrdwhere" was aan elkaar
select Artikel, Lokatie, Chargenummer, Datum, MutatieSt, soort from DDDDDDDD.[color=red]vrdwhere[/color] Chargenummer = 16036

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #57 Gepost op: 17 september 2019, 14:04:24 »
Oei, heel wat activiteit tijdens mijn periode met chronisch tijdsgebrek...

@ SoftAid,
Citaat
Als je ... "VBAProject compileren" gebruikt, dan worden toch alle fouten in de code netjes gevonden en aangeduid
In 'normale' omstandigheden zou ik je volmondig gelijk geven, maar we gaan hier een stapje verder: we 'gebruiken' vba enkel om een CommandText op te bouwen die we nodig hebben om de sql-code aan de praat te krijgen, en dat is jammer genoeg iets waar vba geen oordeel over kan vellen.

@ Georgyboy,
Citaat
Foutje gevonden
Code: "DDDDDDD.vrd "
Spatie na vrd
Hoezo, foutje gevonden? Die spatie moet daar staan, anders krijg je namelijk "vrdwhere".

Wat jij ondertussen nog allemaal aan het doen bent volg ik helaas niet meer.
Heel veel posts geleden werkte iets in de stijl van "select ... from DDDDDDDD.vrd where Chargenummer = 16036" toch ook al (zie reactie #18)
Naderhand zijn we op zoek gegaan naar een flexibele methode om ervoor te zorgen dat de code niet moest gewijzigd worden, en om je toch toe te laten meerdere filters willekeurig al dan niet te gebruiken.
Omdat het maar niet wou lukken heb ik de omweg verzonnen met Access/Excel en later met Excel/Excel.

Je geeft aan dat filteren daar prima werkt. Alles wat nog moest gebeuren is dit systeem blijven gebruiken maar dan met de correcte verwijzing naar je echte database.

In bijlage dus een nieuwe Excel "erp_test". De werkbladen zijn identiek aan "db_test" van vroeger.
Een paar wijzigingen in de vba-code:
"db_bron = ..." mag weg (staat er nog als commentaar)
De initiële opdrachttekst is geworden "select * from vrd " (en wordt automatisch aangevuld met filters indien van toepassing)

Wat jij nog mag doen : het * na 'select' vervangen door een opsomming van gewenste velden (maar moet niet).

En wat jij nog moet doen, de belangrijkste namelijk, en die kan enkel door jou worden gedaan:
"With ActiveSheet.ListObjects.Add ... QueryTable" staat ook in commentaar.
Die moet vervangen worden door de regel die jij in je werkend systeem aantreft, dus iets als:
"With ActiveSheet.ListObjects.Add(SourceType:=0, Source:="ODBC;DSN=DDDDDDDD-RRRRRR-SRV;ServerName=000.000.00.000.0000;" _
    & "ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DBQ=DDDDDDDD;ClientVersion=00.00.000.000;" _
    & "CodePageConvert=1252;PvClientEncoding=CP1252;PvServerEncoding=CP1252", Destination:=Range("$A$1")).QueryTable"
maar dan uiteraard met de juiste parameters (kopiëren en plakken lijkt mij aangewezen!)

Ik zie niet hoe het dan nog zou kunnen mislukken!

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 #58 Gepost op: 18 september 2019, 08:05:14 »
Bedankt voor je geweldige info Putifo,

Betreft “vrdwhere” zonder spatie is dit mijn fout en ben blij dat ik er van geleerd heb.
Verder zal ik wat later je tips bekijken en aanpassen, bedankt voor deze wederom.
Graag had ik uit een andere tabel van de ERP database extra gegevens van een 2° tabel, denk dat dit kan maar kom er niet uit.
Als we dit nog kunnen hebben we een super snelle info wat nu al fantastisch werkt, TOP!
Test gedaan met jou code en dan via de OBDC een 2° tabel gekoppeld, met volgende code
(extra veld komt uit Plu2)

SELECT Vrd.Artikel, Vrd.Lokatie, Vrd.ChargeNummer, Vrd.Datum, Vrd.MutatieSt, Vrd.Soort, Plu2.NaamRek

FROM DDDDDD.Plu2 Plu2,
DDDDDD.Vrd Vrd

WHERE Plu2.PluNum = Vrd.Artikel AND ((Vrd.ChargeNummer=16036))

deel van gegevens uit tabel (zonder extra veld)
1260112 22 16036 20190904 1 I
1260112 22 16036 20190904 1 I
1260112 22 16036 20190904 1 I
1260112 22 16036 20190904 1 I
1260112 22 16036 20190904 1 I
1260112 22 16036 20190905 -2 U
1260112 22 16036 20190905 -1 U
1260112 22 16036 20190909 -1 U
1260112 22 16036 20190909 -1 U
1260112 22 16036 20190909 -2 U

Draaitabel uit de tabel ( waar I (in) = aantal in voorraad en waar U (Uit) aantal verkocht rest = huidige voorraad

Som van MutatieSt Kolomlabels
Rijlabels I U (leeg) Eindtotaal
(leeg)
16034 45 -29 16
Eindtotaal 45 -29 16

Wat een vooruitgang dank zij jouw :)

Zal je laatste tips verder uitvoeren, werkt nu al Top!

Groetjes Georgyboy

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Herstellen excel bestand
« Reactie #59 Gepost op: 19 september 2019, 10:36:27 »
Hallo Georgyboy,

Dus het lukt nu volkomen op je database inclusief ingevulde filters op je werkblad en zonder de code te wijzigen?
Da's in elk geval een zorg minder.

Citaat
Graag had ik uit een andere tabel van de ERP database extra gegevens van een 2° tabel, denk dat dit kan maar kom er niet uit

Hier volg ik toch weer even niet meer, want in dezelfde post schrijf je zelf de perfecte sql-code daarvoor !?
Nu moet ik er wel op wijzen (heb ik lang geleden ook al gedaan) dat je, wanneer je de ene keer dit en de andere keer dat uit je database wil halen de 'eenvoudigste' manier is om dat inderdaad in je code zelf te doen. De methode is simpel: pas enkel je CommandText aan (voor het gemak kan dat met een variabele 'opdracht' blijven gebeuren) en blijf van de rest af.

Dus die van jou letterlijk overgenomen:
opdracht = "SELECT Vrd.Artikel, Vrd.Lokatie, Vrd.ChargeNummer, Vrd.Datum, Vrd.MutatieSt, Vrd.Soort, Plu2.NaamRek FROM DDDDDD.Plu2 Plu2, DDDDDD.Vrd Vrd WHERE Plu2.PluNum = Vrd.Artikel AND ((Vrd.ChargeNummer=16036))"
Maar je moet niet méér schrijven dan nodig, dus dat mag ook zijn:
opdracht = "SELECT Vrd.Artikel, Vrd.Lokatie, Vrd.ChargeNummer, Vrd.Datum, Vrd.MutatieSt, Vrd.Soort, Plu2.NaamRek FROM Plu2, Vrd WHERE Plu2.PluNum = Vrd.Artikel AND Vrd.ChargeNummer=16036"
Anderzijds, als deze combinatie precies zou zijn wat je ettelijke keren wil doen kan je ChargeNummer ook in een variabele steken, maar misschien eerst eens op deze manier proberen?

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

 


www.combell.com