Toevoegquery: is er een maximaal aantal velden?

Status
Niet open voor verdere reacties.

nillis

Gebruiker
Lid geworden
21 feb 2019
Berichten
14
Middels een toevoegquery wil ik uit een gekoppelde database twintig velden overhevelen naar een lokale tabel. Nu stuit ik op het probleem dat ik niet meer dan zestien velden in de toevoegquery kan gebruiken.
Is dit idd het maximum voor een toevoegquery?
 
Er is wel een max aantal velden: 255. Dat is een ietsie pietsie meer dan 16:)

Heeft de lokale tabel wel alle velden die in de gekoppelde tabel staan? Misschien zijn er maar 16 veldnamen in beide tabellen gelijk waardoor het lijkt dat 16 het max is. Zonder voorbeeld is het gissen.

Mvg
Jan
 
Beetje raar dat je dit probleem hebt.
Ik vermoed het volgende: Je hebt een query gemaakt, waar standaard 16 velden in staan (je moet uiteraard nog wel bepalen welke waarden in die velden komen.)
Deze waarden zoek je met het keuzelijstje in de velden zelf... en dan... zit je uiteraard op 16 velden.

Je kan op 2 manieren velden toevoegen:
Dubbelklik op het veld dat je wil toevoegen (en dan komt er automatisch een kolom bij).
Bovenaan bij ontwerp heb je eveneens ergens een optie om kolommen toe te voegen.
 
Hallo Jan,

In een subform staan de waardes welke uit een SQL-database komen.
Met de toevoegquery pluk ik uit die subform één voor één de veldwaardes en wil die dan toevoegen in een lokale tabel. Meer dan 16 velden kunnen toevoegen laat de query niet zien.

Schermafdruk.jpg


Code:
INSERT INTO T_Crediteringen ( Cr_Soort, Cr_ReferentieId, Cr_DatumInvoer, Cr_LG_R_Leverancier, Cr_LG_L_Leverancier, Cr_LG_R_Sfer, Cr_LG_R_Cyl, Cr_LG_R_As, Cr_LG_R_Prisma, Cr_LG_R_PrismaAs, Cr_LG_L_Sfer, Cr_LG_L_Cyl, Cr_LG_L_As, Cr_LG_L_Prisma, Cr_LG_L_PrismaAs, Cr_LG_R_Type )
SELECT "Glazen" AS Soort, [Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![AdrNumber] AS Expr1, Now() AS Expr2, [Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![R_Leverancier] AS Expr3, [Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![L_Leverancier] AS Expr4, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![R_Sfer]) AS Expr5, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![R_cyl]) AS Expr6, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![R_as]) AS Expr7, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![R_Prisma]) AS Expr8, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![R_PrismaAs]) AS Expr9, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![L_Sfer]) AS Expr10, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![L_Cyl]) AS Expr11, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![L_As]) AS Expr12, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![L_Prisma]) AS Expr13, Val([Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![L_PrismaAs]) AS Expr14, [Formulieren]![F_Crediteringen_ToevoegenGlas]![F_Crediteringen_ToevoegenGlas_sub].[Form]![RechterGlasType] AS Expr15;
 
Je zoekt de grenzen van de querylengte ook wel op met deze query. Waarom gebruik je geen VBA procedure? Kunnen de strings een heel stuk (en dan bedoel ik ook écht een heel stuk) korter. Ik ben sowieso al geen fan van formuliergegevens gebruiken in een query, maar deze werkwijze kan dus echt veel beter.
 
Goede tip en zal met VBA de oplossing gaan verzinnen.
Maar de begrenzing van max 16 velden met een toevoegquery is me nog een raadsel.
 
Achter INSERT INTO staan 16 velden. De tabel T_Crediteringen heeft, neem ik aan, meer dan 16 velden. De ontbrekende velden zou je kunnen toevoegen in deze code en dan kun je wel meer velden uit de subform toevoegen.

Zoals hierboven al aangegeven is, zijn er betere methodes dan deze.

Code:
INSERT INTO T_Crediteringen ( Cr_Soort, Cr_ReferentieId, Cr_DatumInvoer, Cr_LG_R_Leverancier, Cr_LG_L_Leverancier, Cr_LG_R_Sfer, Cr_LG_R_Cyl, Cr_LG_R_As, Cr_LG_R_Prisma, Cr_LG_R_PrismaAs, Cr_LG_L_Sfer, Cr_LG_L_Cyl, Cr_LG_L_As, Cr_LG_L_Prisma, Cr_LG_L_PrismaAs, Cr_LG_R_Type )

Succes

Gr. Jan
 
Bovenaan bij ontwerp heb je eveneens ergens een optie om kolommen toe te voegen.

@Luc: en waarom zag ik dit knopje niet? :eek: Ah, ... omdat de knop niet actief is wanneer je niet op de laatste kolom klikt :rolleyes:

Al werkende diende zich nog meer velden aan en heb ik, dankzij jullie bedenkingen, middels toegevoegde id-nummers, gewijzigde koppelingen en VBA de toevoegingen op een nettere manier opgelost.

Dank allen voor de reacties.
 
Laatst bewerkt:
Je hebt dat knopje ook niet nodig; je kunt gewoon velden naar beneden slepen als je er meer nodig hebt. Of, nog makkelijker, dubbelklikken op de veldnaam in de tabel(len).
 
Het was wel wat begrijpelijk dat hij deze mogelijkheid niet direct zag.
Zijn gegevens werden immers niet gevuld aan de hand van een bestaande tabel, maar aan de hand van een formulier.
Dat laat er me eigenlijk wel aan denken dat hij misschien nog niet weet dat je ook een formulier rechtstreeks aan een tabel kan koppelen. Sorry als ik me vergis. 't Is een wilde gok natuurlijk. Indien niet, dan zou hij natuurlijk wel aan deze mogelijkheid moeten denken. En indien het niet de bedoeling is dat men via een formulier alle gegevens kan raadplegen, kan je een formulier ook instellen als 'gegevensinvoer'.
 
Dat laat er me eigenlijk wel aan denken dat hij misschien nog niet weet dat je ook een formulier rechtstreeks aan een tabel kan koppelen. Sorry als ik me vergis.
Ik denk niet dat dat het probleem is, en dat TS echt wel weet hoe je een formulier aan een tabel koppelt (als dat al niet automatisch gebeurt bij het aanmaken van het formulier). Dit lijkt me eerder een kwestie van een formulier gebruiken om records te selecteren, en die dan aan een andere tabel toevoegen. En dat kan best op deze manier, al vind ik het dus een hele slechte werkwijze. En jij denk ik ook :).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan