Gegevens splitsen in Access

Status
Niet open voor verdere reacties.
Dit kan met de volgende formule:

IIf(InStr(1;[Veld1];",")=0;[Veld1];Left([Veld1];(InStr(1;[Veld1];",")-1)))

Ik heb een voorbeeld bijgevoegd.
 

Bijlagen

  • MidLen.zip
    11,3 KB · Weergaven: 27
Nieuw probleem. Ik heb de volgende code:

Code:
SELECT [DHL Factuur Data_v1].Debnr, [DHL Operations].[Shipper Name], [DHL Operations].[Origin Service Center], [DHL Operations].[Pickup Postcode], [DHL Operations].[Origin Country], [DHL Factuur Data_v1].Geadresseerde, [DHL Factuur Data_v1].Straat, [DHL Factuur Data_v1].Postcde, [DHL Factuur Data_v1].Huisnr, [DHL Factuur Data_v1].[Hs-toev], [DHL Factuur Data_v1].Woonplaats, [DHL Factuur Data_v1].Landcde, [DHL Factuur Data_v1].Referentienr, [DHL Operations].[Product Group], [DHL Factuur Data_v1].[Zendingnr DHL], [DHL Factuur Data_v1].[Wrk gew] AS [Factuur gewicht], [DHL Factuur Data_v1].[Vol gew] AS [Opgegeven gewicht], [DHL Operations].Pieces, [DHL Operations].[Reporting Class Description], [DHL Factuur Data_v1].Factuurnr, Sum([DHL Factuur Data_v1].[Vrachtprijs]/100) AS Vrachtprijs, Sum([DHL Factuur Data_v1].[BTW Bedrag]/100) AS [BTW Bedrag], Sum([DHL Factuur Data_v1].[Gecompenseerd Remb]/100) AS [Gecompenseerd Rembours], [DHL Factuur Data_v1].Frankering, Sum([DHL Factuur Data_v1].[afg gebied]/100) AS [Afgelverd Gebied], Sum([DHL Factuur Data_v1].[dhl pallets]/100) AS [DHL Pallets], Sum([DHL Factuur Data_v1].[dhl randen]/100) AS [DHL Randen], Sum([DHL Factuur Data_v1].[colli]/100) AS Colli, Sum([DHL Factuur Data_v1].[pallets]/100) AS Pallets, Sum([DHL Factuur Data_v1].[dieseltoesl]/100) AS Dieseltoeslag, Sum([DHL Factuur Data_v1].[xpallets]/100) AS XPallets, Sum([DHL Factuur Data_v1].[xgroot]/100) AS XGroot, Sum([DHL Factuur Data_v1].[xhandling]/100) AS XHandling, Sum([DHL Factuur Data_v1].[Euro pallets]/100) AS [Euro Pallets]
FROM [DHL Factuur Data_v1] LEFT JOIN [DHL Operations] ON [DHL Factuur Data_v1].[Zendingnr DHL] = [DHL Operations].[AWB/ShipmentID]
GROUP BY [DHL Factuur Data_v1].Debnr, [DHL Operations].[Shipper Name], [DHL Operations].[Origin Service Center], [DHL Operations].[Pickup Postcode], [DHL Operations].[Origin Country], [DHL Factuur Data_v1].Geadresseerde, [DHL Factuur Data_v1].Straat, [DHL Factuur Data_v1].Postcde, [DHL Factuur Data_v1].Huisnr, [DHL Factuur Data_v1].[Hs-toev], [DHL Factuur Data_v1].Woonplaats, [DHL Factuur Data_v1].Landcde, [DHL Factuur Data_v1].Referentienr, [DHL Operations].[Product Group], [DHL Factuur Data_v1].[Zendingnr DHL], [DHL Factuur Data_v1].[Wrk gew], [DHL Factuur Data_v1].[Vol gew], [DHL Operations].Pieces, [DHL Operations].[Reporting Class Description], [DHL Factuur Data_v1].Factuurnr, [DHL Factuur Data_v1].Frankering;

Daar wil ik de volgende code aan toevoegen

Code:
StartclockStamp Date: IIf(InStr(1;[Startclock Stamp];" ")=0;[Startclock Stamp];Left([Startclock Stamp];(InStr(1;[Startclock Stamp];" ")-1)))

De Startclock Stamp staat in de "DHL Operations" tabel. Met een losse query werkt het, maar door alle group by etc. werkt het hier niet.
 
Als ik het goed heb, moet je 2 stukken code toevoegen in je SQL string.

Allereerst moet je [DHL Operations]![Startclock Stamp] intypen ipv [Startclock Stamp].
Tevens moet je een Group by zetten op [Startclock Stamp]

De Iif wordt dus al volgt:
Code:
IIf(InStr(1,[DHL Operations]![Startclock Stamp]," ")=0,[DHL Operations]![Startclock Stamp],Left([DHL Operations]![Startclock Stamp],(InStr(1,[DHL Operations]![Startclock Stamp]," ")-1))) AS [StartclockStampDate]

Let op: Maak eerst een kopie van de query, het kan gebeuren dat ik een typfout heb gemaakt.

De volgende code zal waarschijnlijk werken:
Code:
SELECT [DHL Factuur Data_v1].Debnr, [DHL Operations].[Shipper Name], [DHL Operations].[Origin Service Center], [DHL Operations].[Pickup Postcode], [DHL Operations].[Origin Country], [DHL Factuur Data_v1].Geadresseerde, [DHL Factuur Data_v1].Straat, [DHL Factuur Data_v1].Postcde, [DHL Factuur Data_v1].Huisnr, [DHL Factuur Data_v1].[Hs-toev], [DHL Factuur Data_v1].Woonplaats, [DHL Factuur Data_v1].Landcde, [DHL Factuur Data_v1].Referentienr, [DHL Operations].[Product Group], [DHL Factuur Data_v1].[Zendingnr DHL], [DHL Factuur Data_v1].[Wrk gew] AS [Factuur gewicht], [DHL Factuur Data_v1].[Vol gew] AS [Opgegeven gewicht], [DHL Operations].Pieces, [DHL Operations].[Reporting Class Description], [DHL Factuur Data_v1].Factuurnr, Sum([DHL Factuur Data_v1].[Vrachtprijs]/100) AS Vrachtprijs, Sum([DHL Factuur Data_v1].[BTW Bedrag]/100) AS [BTW Bedrag], Sum([DHL Factuur Data_v1].[Gecompenseerd Remb]/100) AS [Gecompenseerd Rembours], [DHL Factuur Data_v1].Frankering, Sum([DHL Factuur Data_v1].[afg gebied]/100) AS [Afgelverd Gebied], Sum([DHL Factuur Data_v1].[dhl pallets]/100) AS [DHL Pallets], Sum([DHL Factuur Data_v1].[dhl randen]/100) AS [DHL Randen], Sum([DHL Factuur Data_v1].[colli]/100) AS Colli, Sum([DHL Factuur Data_v1].[pallets]/100) AS Pallets, Sum([DHL Factuur Data_v1].[dieseltoesl]/100) AS Dieseltoeslag, Sum([DHL Factuur Data_v1].[xpallets]/100) AS XPallets, Sum([DHL Factuur Data_v1].[xgroot]/100) AS XGroot, Sum([DHL Factuur Data_v1].[xhandling]/100) AS XHandling, Sum([DHL Factuur Data_v1].[Euro pallets]/100) AS [Euro Pallets], IIf(InStr(1,[DHL Operations]![Startclock Stamp]," ")=0,[DHL Operations]![Startclock Stamp],Left([DHL Operations]![Startclock Stamp],(InStr(1,[DHL Operations]![Startclock Stamp]," ")-1))) AS [StartclockStamp]
FROM [DHL Factuur Data_v1] LEFT JOIN [DHL Operations] ON [DHL Factuur Data_v1].[Zendingnr DHL] = [DHL Operations].[AWB/ShipmentID]
GROUP BY [DHL Factuur Data_v1].Debnr, [DHL Operations].[Shipper Name], [DHL Operations].[Origin Service Center], [DHL Operations].[Pickup Postcode], [DHL Operations].[Origin Country], [DHL Factuur Data_v1].Geadresseerde, [DHL Factuur Data_v1].Straat, [DHL Factuur Data_v1].Postcde, [DHL Factuur Data_v1].Huisnr, [DHL Factuur Data_v1].[Hs-toev], [DHL Factuur Data_v1].Woonplaats, [DHL Factuur Data_v1].Landcde, [DHL Factuur Data_v1].Referentienr, [DHL Operations].[Product Group], [DHL Factuur Data_v1].[Zendingnr DHL], [DHL Factuur Data_v1].[Wrk gew], [DHL Factuur Data_v1].[Vol gew], [DHL Operations].Pieces, [DHL Operations].[Reporting Class Description], [DHL Factuur Data_v1].Factuurnr, [DHL Factuur Data_v1].Frankering, [StartclockStamp];

Je hebt in de ontwerpweergave van de query er 2 kolommen bij:
- Expressie met de Iif. (AS [StartclockStamp]).
- Group By op de expressie [StartclockStamp].
 
Hij geeft aan dat het geen deel uit maakt van een statistische functie.
 
Zou je een voorbeeldje willen uploaden?
Er is blijkbaar meer aan de hand.
Zo kunnen we ook gerichter antwoorden.

In dit voorbeeld hoeft alleen maar:
- tabel DHL Operations en DHL Factuur Data_v1.
- de 2 losse queries.

Kopie maken van de db.
Kortom alle formulieren, rapporten, queries en tabellen weggooien (tenminste als er geen tussentabel is tussen DHL Operations en DHL Factuur Data_v1).

En even wat fictieve data in de tabellen.
Comprimeren en herstellen.
En ff zippen.
 
De query DHL werkte, alleen met deze toevoeging erbij niet. Ik zou wel even kijken naar een voorbeeld, maar daar moet ik wel wat dingen voor doen.lk kijk even.
 
In een losse query draait hij wel, maar in de totaal query niet, dat is vreemd?
 
Ik kom er ook net achter dat het veel simpeler kan:

Code:
StartclockStamp: Format([DHL Operations]![Startclock Day];"yyyy-mm-dd")

Wat je dus doet is de datum omdraaien, net zoals het in de Startclock Stamp staat.

En deze kolom op Group By zetten.
Deze werkt zonder enig probleem en is veel simpeler.

Code:
SELECT [DHL Factuur Data_v1].Debnr, [DHL Operations].[Shipper Name], [DHL Operations].[Origin Service Center], [DHL Operations].[Pickup Postcode], [DHL Operations].[Origin Country], [DHL Factuur Data_v1].Geadresseerde, [DHL Factuur Data_v1].Straat, [DHL Factuur Data_v1].Postcde, [DHL Factuur Data_v1].Huisnr, [DHL Factuur Data_v1].[Hs-toev], [DHL Factuur Data_v1].Woonplaats, [DHL Factuur Data_v1].Landcde, [DHL Factuur Data_v1].Referentienr, [DHL Operations].[Product Group], [DHL Factuur Data_v1].[Zendingnr DHL], [DHL Factuur Data_v1].[Wrk gew] AS [Factuur gewicht], [DHL Factuur Data_v1].[Vol gew] AS [Opgegeven gewicht], [DHL Operations].Pieces, [DHL Operations].[Reporting Class Description], [DHL Factuur Data_v1].Factuurnr, Sum([DHL Factuur Data_v1].[Vrachtprijs]/100) AS Vrachtprijs, Sum([DHL Factuur Data_v1].[BTW Bedrag]/100) AS [BTW Bedrag], Sum([DHL Factuur Data_v1].[Gecompenseerd Remb]/100) AS [Gecompenseerd Rembours], [DHL Factuur Data_v1].Frankering, Sum([DHL Factuur Data_v1].[afg gebied]/100) AS [Afgelverd Gebied], Sum([DHL Factuur Data_v1].[dhl pallets]/100) AS [DHL Pallets], Sum([DHL Factuur Data_v1].[dhl randen]/100) AS [DHL Randen], Sum([DHL Factuur Data_v1].[colli]/100) AS Colli, Sum([DHL Factuur Data_v1].[pallets]/100) AS Pallets, Sum([DHL Factuur Data_v1].[dieseltoesl]/100) AS Dieseltoeslag, Sum([DHL Factuur Data_v1].[xpallets]/100) AS XPallets, Sum([DHL Factuur Data_v1].[xgroot]/100) AS XGroot, Sum([DHL Factuur Data_v1].[xhandling]/100) AS XHandling, Sum([DHL Factuur Data_v1].[Euro pallets]/100) AS [Euro Pallets], Format([DHL Operations]![Startclock Day],"yyyy/mm/dd") AS StartDate
FROM [DHL Factuur Data_v1] LEFT JOIN [DHL Operations] ON [DHL Factuur Data_v1].[Zendingnr DHL] = [DHL Operations].[AWB/ShipmentID]
GROUP BY [DHL Factuur Data_v1].Debnr, [DHL Operations].[Shipper Name], [DHL Operations].[Origin Service Center], [DHL Operations].[Pickup Postcode], [DHL Operations].[Origin Country], [DHL Factuur Data_v1].Geadresseerde, [DHL Factuur Data_v1].Straat, [DHL Factuur Data_v1].Postcde, [DHL Factuur Data_v1].Huisnr, [DHL Factuur Data_v1].[Hs-toev], [DHL Factuur Data_v1].Woonplaats, [DHL Factuur Data_v1].Landcde, [DHL Factuur Data_v1].Referentienr, [DHL Operations].[Product Group], [DHL Factuur Data_v1].[Zendingnr DHL], [DHL Factuur Data_v1].[Wrk gew], [DHL Factuur Data_v1].[Vol gew], [DHL Operations].Pieces, [DHL Operations].[Reporting Class Description], [DHL Factuur Data_v1].Factuurnr, [DHL Factuur Data_v1].Frankering, Format([DHL Operations]![Startclock Day],"yyyy/mm/dd");
 
Sorry ik begrijp echt niet hoe deze werkt.

Er staat een Startclock day, maar die staat nergens in mijn tabel?
 
Hij staat zeker wel in je tabel. :)
Bekijk de screenshot maar.
Dit is een screenshot van de db die jij hebt geupload.
Hier heb ik niks aan veranderd (ik heb hem zonet weer ff gedownload).
 

Bijlagen

  • startclock.jpg
    startclock.jpg
    51,7 KB · Weergaven: 65
Ohw ja verkeerd gekeken, maar het ging om het splitsen van de startclock stamp en stopclock stamp.
 
En hierbij ook maar ff de db. ;)

Ik heb hem ook even gecomprimeerd, hij is nu ingepakt nog maar ongeveer 24 Kb.
Kortom je kunt hem nu gemakkelijk uploaden op dit forum.
Hij staat nu ook standaard op comprimeren bij afsluiten.
 

Bijlagen

  • DHL INTERNET.zip
    23,4 KB · Weergaven: 38
Ah oke, je wilt dus specifiek deze splitsen..

Ik dacht hiermee een simpelere oplossing te pakken te hebben.
 
Laatst bewerkt:
Nou nog maar een andere simpele oplossing.
Deze had ik ook veel eerder moeten zien... :rolleyes:
Datum is altijd 10 karakters, dus je kunt Left gebruiken.
Deze werkt ook prima binnen die andere query.

Code:
Deel1Stamp: Left([DHL Operations]![Startclock Stamp];10)
+ Group By.

Als je in de toekomst het rechterdeel wilt hebben, dan moet je Right ipv Left gebruiken(is toevallig ook 10 karakters).

Makkelijker kan ik het niet maken. ;)
 
Geen dank.

Ik baal er overigens nog steeds van dat ik dat ook niet eerder zag.
Soms is het zo simpel en denk je zo moeilijk.
Sorry daarvoor... ;)
 
Geen probleem (ik ken het ;)), ik had al door dat hij iedere keer een vast gedeelte moest pakken, maar kwam zelf niet uit de formule. Het werkt en daar gaat het om!
 
Ik wil nu het volgende doen:

Left([historische data]![servicecode];3);(Right([historische data]![servicecode];11)

Deze formule werkt niet, wat doe ik fout bij de notatie?
 
Het is een beetje afhankelijk van wat je wilt.
Maar ik vermoed dat het dit is (&):

Code:
Left([historische data]![servicecode];3) & (Right([historische data]![servicecode];11)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan