toevoeg query maken met lege regels?

Status
Niet open voor verdere reacties.

thorry

Gebruiker
Lid geworden
14 nov 2008
Berichten
40
Hallo,

Ik heb een excel import gemaakt (SBS_Import_xlsx) en wil hier via een toevoegquery de tabel tblExport vullen.
Als ik dat wil doen wil ik de lege regels wel meenemen maar dat ze niets invullen alleen heb ik geen idee hoe ik dat moet aanpakken.

Het voorbeeld ziet er nu zo uit:
INSERT INTO tbl_Export ( Niv01, Niv02 )
SELECT [SBS_Import_xlsx]!
Code:
 & "0" & [SBS_Import_xlsx]![Niveau 1] AS 1, [SBS_Import_xlsx]![Code] & "0" & [SBS_Import_xlsx]![Niveau 1] & ".0" & [SBS_Import_xlsx]![Niveau 2] AS 2
FROM SBS_Import_xlsx;



[ATTACH]336403.vB[/ATTACH]
 

Bijlagen

  • Naamloos.png
    Naamloos.png
    16,2 KB · Weergaven: 75
  • ImportExcel.zip
    1,5 MB · Weergaven: 35
Als ik dat wil doen wil ik de lege regels wel meenemen maar dat ze niets invullen alleen heb ik geen idee hoe ik dat moet aanpakken.
En ik heb geen idee wat je bedoelt :). Dat komt dan eigenlijk wel mooi uit, want als ik je tabellen bekijk, dan zijn ze gruwelijk slecht (is beleefd voor: totaal niet) genormaliseerd. Leg eens uit wat je wilt met deze database, en vooral met deze tabellen. Want aan deze opzet ga ik zo mijn vingers niet branden :D.
 
Wat ik bedoel is zoals in het plaatje als resultaat moet komen.
Ik heb een tabel met niveau1, niveau2 etc en ik wil met een toevoeg query de tabel tbl_export vullen
de gegevens van wat onder niveau1 staan 00, 01,.... komt NOVK2- voor dus NOVK2-00 etc en onder Niveau2 komt dat ook.
Alleen echter onder niveau heb ik ook legen cellen en die wil ik eigenlijk leeg houden dus dat hij daar niets invult maar wel de rest invult.

eigenlijk zoals het jpg bestandje van tabel en dan toevoeg query en dan zie je het resultaat.
Alleen ik weet niet hoe ik dat in toevoegquery kan maken
 
Ik ook niet.... Nogmaals: je tabellen zijn heel slecht (niet dus) genormaliseerd. Je klus zou een stuk makkelijker zijn, en je database een heel stuk bruikbaarder, als je dat eerst oplost.
 
Al vermoed ik dat je zoiets wilt:
PHP:
INSERT INTO tbl_Export ( Niv01, Niv02, Niv03, Niv04, Niv05, Niv06, Niv07, Niv08 )
SELECT [Code]+Right("00" & [Niveau 1],2) AS 1, 
IIf(IsNull([Niveau 2]),Null,[Code]+Right("00" & [Niveau 1],2) & "."+Right("00" & [Niveau 2],2)) AS 2, 
IIf(IsNull([2]),Null,IIf(IsNull([Niveau 3]),Null,[2] & "."+Right("00" & [Niveau 3],2))) AS 3, 
IIf(IsNull([3]),Null,IIf(IsNull([Niveau 4]),Null,[3] & "."+Right("00" & [Niveau 4],2))) AS 4, 
IIf(IsNull([4]),Null,IIf(IsNull([Niveau 5]),Null,[4] & "."+Right("00" & [Niveau 5],2))) AS 5, 
IIf(IsNull([5]),Null,IIf(IsNull([Niveau 6]),Null,[5] & "."+Right("00" & [Niveau 6],2))) AS 6, 
IIf(IsNull([6]),Null,IIf(IsNull([Niveau 7]),Null,[6] & "."+Right("00" & [Niveau 7],2))) AS 7, 
IIf(IsNull([7]),Null,IIf(IsNull([Niveau 8]),Null,[7] & "."+Right("00" & [Niveau 8],2))) AS 8
FROM SBS_Import_xlsx;
 
Nu je database normaliseren :). want ik zou hier héél ongelukkig van worden als ik hier mee moest ontwikkelen :D
 
Dank je wel en ja klopt wat je zegt om de database te normaliseren dat moet nog gebeuren alleen ik was eerst ff opzoek hoe ik deze toevoeg query moest maken.
Had ik nog 1 vraagje hoe maak ik het dat [Name] ook hierin meegenomen wordt dat [Name01] staat gelijk aan [niv01] en [Name02] aan [niv02] dat het een boomstructuur wordt zoals in het excel bestand.
al vast bedankt
 

Bijlagen

  • sbs.xlsx
    90 KB · Weergaven: 26
Dat heb ik dus gedaan, maar ik snap eerlijk gezegd niet wat je precies wilt doen/zien. Je Excel bestand is ook hopeloos niet-genormaliseerd. Wat wil je precies zien in je output?
 
Hallo Octafish,

In de excile file onder het tabje SBS is het plaatje wat ik hier ook laat zien.
Het geen wat je in het geel ziet is wat in de database als (SBS_Import_xlsx) komt te staan en het groen is wat vanuit de import gemaakt wordt.
Zoals je dat ook voor de niveau heb gedaan met met de onderstaande code:
PHP Code:
IIf(IsNull([2]),Null,IIf(IsNull([Niveau 3]),Null,[2] & "."+Right("00" & [Niveau 3],2))) AS 3,
IIf(IsNull([3]),Null,IIf(IsNull([Niveau 4]),Null,[3] & "."+Right("00" & [Niveau 4],2))) AS 4,
IIf(IsNull([4]),Null,IIf(IsNull([Niveau 5]),Null,[4] & "."+Right("00" & [Niveau 5],2))) AS 5,
IIf(IsNull([5]),Null,IIf(IsNull([Niveau 6]),Null,[5] & "."+Right("00" & [Niveau 6],2))) AS 6,
IIf(IsNull([6]),Null,IIf(IsNull([Niveau 7]),Null,[6] & "."+Right("00" & [Niveau 7],2))) AS 7,
IIf(IsNull([7]),Null,IIf(IsNull([Niveau 8]),Null,[7] & "."+Right("00" & [Niveau 8],2))) AS 8
FROM SBS_Import_xlsx;

Maar nu komt de "Name" vanuit de import in de toevoegquery naar Name01, Name02 etc...
Dit is nodig om boom te maken.
Dus met Niveau1 waar 01 staat komt onder Name01 "Primaire installatie" te staan en onder niveau1 waar 02 staat "Secundaire installatie".
Als goed is kan je dat af lezen uit de excel file en het plaatje waar ik met rood en blauw laat zien wat ik bedoel?
 

Bijlagen

  • import.png
    import.png
    72,9 KB · Weergaven: 48
Dat gaat dan denk ik op exact dezelfde manier, maar dan met de andere veldnamen. Probeer zelf eens :). Het enige dat je wel moet doen is de nieuwe veldnamen uniek maken, dus niet meer [2] en [3], maar bijvoorbeeld [n2] en [n3].
 
Ik heb het geprobeerd maar ik kom er niet uit dat name is gelijk aan niveau dat je een boom gestructuur krijgt.
Nu krijg ik onder elke niveau de zelfde [Name] te staan

INSERT INTO tbl_Export ( Niv01, Niv02, Niv03, Niv04, Niv05, Niv06, Niv07, Niv08 )
SELECT IIf(IsNull([Niveau 1]),Null,[Name]) AS n1,
IIf(IsNull([Niveau 2]),Null,[Name]) AS n2,
IIf(IsNull([n2]),Null,IIf(IsNull([Niveau 3]),Null,[n2] [Niveau 3],2))) AS n3,
IIf(IsNull([n3]),Null,IIf(IsNull([Niveau 4]),Null,[n3] [Niveau 4],2))) AS n4,
IIf(IsNull([n4]),Null,IIf(IsNull([Niveau 5]),Null,[n4] [Niveau 5],2))) AS n5,
IIf(IsNull([n5]),Null,IIf(IsNull([Niveau 6]),Null,[n5] [Niveau 6],2))) AS n6,
IIf(IsNull([n6]),Null,IIf(IsNull([Niveau 7]),Null,[n6] [Niveau 7],2))) AS n7,
IIf(IsNull([n7]),Null,IIf(IsNull([Niveau 8]),Null,[n7] [Niveau 8],2))) AS n8
FROM SBS_Import_xlsx;
 
Ik zie hier exact dezelfde code als bij de niveau’s, en je vult ook alleen de niveau’s. Je moet uiteraard de oude code voor de niveau’s gebruiken, en daar de Naamvelden aan toevoegen.
 
Hmmm heb geen idee hoe ik dat moet doen want ik heb bij de import wat je ook ziet op de excelsheet in geel gekleurd maar 1 veld (kolom) met "Name" staan.
En de name wordt dan in de toevoegquery gelinkt met het niveau met dat krijg ik dus niet voor elkaar?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan