OnClick Event aanmaken voor Make Table met variabele Tabelnaam in andere Database

Status
Niet open voor verdere reacties.

Toasty

Gebruiker
Lid geworden
30 mei 2014
Berichten
50
Goedemiddag,

ik wil middels een on click (knop) event mijn make table draaien die vervolgens een tabel aanmaakt in een andere database dan degene waar ik in zit. De tabelnaam dient een naam te hebben met variabelen (2 of 3 kolommen) uit die make table query.

Kunnen jullie me daarmee helpen?

Alvast bedankt!

Taosty
 
Je geeft weinig informatie, en al helemaal geen voorbeeld, en dat helpt natuurlijk niet echt optimaal. Maar een poging: je kunt een met DAO of ADO een externe db openen en daar een tabel in aanmaken. Is dat wat je bedoelt?
 
Inderdaad wellicht een beetje weinig info. Altijd lastig om in te schatten als je er zelf midden in zit.

Zoals aangegeven wil ik dus een make table query een tabel aan laten maken (qdbo_TempMPC) in een andere database dan de database waar de make table query in staat. Dat is opzich goed te doen. Het lastige is dat ik de tabel die aangemaakt wordt, een variabele naam wil geven. Deze naam komt voort uit kolommen binnen de make table query. Zoals bijvoorbeeld de kolom "CurMonth" ICM de kolom "LastVendor" en "LastVendorBuyer". Deze staan als String in de query maar zijn voor elk record gelijk tijdens een export.

Code:
SELECT qry_ExportMPC.partnumber, qry_ExportMPC.Description, qry_ExportMPC.OCC, qry_ExportMPC.SummaryCode, qry_ExportMPC.SummaryDescription, qry_ExportMPC.SelectedBuyer, qry_ExportMPC.DanvilleVendor, qry_ExportMPC.DanvilleSales, qry_ExportMPC.PreviousMonth, qry_ExportMPC.PreviousVendorBuyer, qry_ExportMPC.PreviousVendor, qry_ExportMPC.PreviousVendorName, qry_ExportMPC.PreviousVendorFreight, qry_ExportMPC.PreviousAOPMPrice€, qry_ExportMPC.[PreviousAOPMPrice$], qry_ExportMPC.PreviousMSales, qry_ExportMPC.LastMonth, qry_ExportMPC.CurMonth, qry_ExportMPC.LastVendorBuyer, qry_ExportMPC.LastVendor, qry_ExportMPC.LastVendorName, qry_ExportMPC.LastVendorFreight, qry_ExportMPC.LastAOPMPrice€, qry_ExportMPC.[LastAOPMPrice$], qry_ExportMPC.LastMSales, qry_ExportMPC.LoggedAOPMPriceChange€, qry_ExportMPC.[LoggedAOPMPriceChange$], qry_ExportMPC.AOPMPriceChange€, qry_ExportMPC.[AOPMPriceChange$], qry_ExportMPC.MSalesChange, qry_ExportMPC.AOPMMonthlyDelta€, qry_ExportMPC.[AOPMMonthlyDelta$], qry_ExportMPC.AOPMType, qry_ExportMPC.AOPMChangeCategory, qry_ExportMPC.PreviousILRMPrice€, qry_ExportMPC.[PreviousILRMPrice$], qry_ExportMPC.LastILRMPrice€, qry_ExportMPC.[LastILRMPrice$], qry_ExportMPC.LoggedILRMPriceChange€, qry_ExportMPC.[LoggedILRMPriceChange$], qry_ExportMPC.ILRMPriceChange€, qry_ExportMPC.[ILRMPriceChange$], qry_ExportMPC.ILRMMonthlyDelta€, qry_ExportMPC.[ILRMMonthlyDelta$], qry_ExportMPC.ILRMType, qry_ExportMPC.ILRMChangeCategory, qry_ExportMPC.ILRCurrencyUSD, qry_ExportMPC.AOPCurrencyUSD, qry_ExportMPC.PreviousSpendAOP€, qry_ExportMPC.[PreviousSpendAOP$], qry_ExportMPC.PreviousSpendILR€, qry_ExportMPC.[PreviousSpendILR$], qry_ExportMPC.LastSpendAOP€, qry_ExportMPC.[LastSpendAOP$], qry_ExportMPC.LastSpendILR€, qry_ExportMPC.[LastSpendILR$], qry_ExportMPC.SpendDiffAOP€, qry_ExportMPC.[SpendDiffAOP$], qry_ExportMPC.SpendDiffILR€, qry_ExportMPC.[SpendDiffILR$], qry_ExportMPC.[Increase Value], qry_ExportMPC.[Decrease Value], qry_ExportMPC.[SumOfSumOfAOPMMonthlyDelta$], qry_ExportMPC.Expl, qry_ExportMPC.[Incr Expl], qry_ExportMPC.[Decr Expl] INTO qdbo_TempMPC IN 'H:\VENDOR\Cost Reduction Opportunity\InflationMonitorDB\MonitoringDB\MonitoringDB.accdb'
FROM qry_ExportMPC
WHERE (((qry_ExportMPC.LastVendor)=[Forms]![frm_MPC]![LastVendor]));
 
Nu dan iets meer informatie, maar is de informatie tegenstrijdig:
Zoals aangegeven wil ik dus een make table query een tabel aan laten maken (qdbo_TempMPC) ... dat ik de tabel die aangemaakt wordt, een variabele naam wil geven.

Je wilt een tabel aanmaken met de naam [qdbo_TempMPC] zeg je eerst, en vervolgens zeg je dat je dit nu juist nietwilt en dat de naam variabel moet zijn! En wat moeten we hier mee?
Zoals bijvoorbeeld de kolom "CurMonth" ICM de kolom "LastVendor" en "LastVendorBuyer"
Je noemt hier al 4 verschillende velden die je wilt gebruiken als naam. En je zegt zelf dat dit een voorbeeld is, en dat je dus ook net zo goed andere velden wilt gebruiken? Sowieso zou ik één naamstramien voor de tabel gebruiken, want hier zou ik helemaal gek van worden.
Overigens ben je er als eerste in geslaagd om een string te bakken die ik niet kan lezen omdat de string te lang is :). Voor het overzicht zou ik het zo doen:
PHP:
Dim strSQL As String

strSQL = "SELECT partnumber, Description, OCC, SummaryCode, SummaryDescription, SelectedBuyer, DanvilleVendor, DanvilleSales, PreviousMonth, PreviousVendorBuyer, " _
    & "PreviousVendor, PreviousVendorName, PreviousVendorFreight, PreviousAOPMPrice€, [PreviousAOPMPrice$], PreviousMSales, LastMonth, CurMonth, LastVendorBuyer, " _
    & "LastVendor, LastVendorName, LastVendorFreight, LastAOPMPrice€, [LastAOPMPrice$], LastMSales, LoggedAOPMPriceChange€, [LoggedAOPMPriceChange$], AOPMPriceChange€, " _
    & "[AOPMPriceChange$], MSalesChange, AOPMMonthlyDelta€, [AOPMMonthlyDelta$], AOPMType, AOPMChangeCategory , PreviousILRMPrice€, [PreviousILRMPrice$], LastILRMPrice€, " _
    & "[LastILRMPrice$], LoggedILRMPriceChange€, [LoggedILRMPriceChange$], ILRMPriceChange€, [ILRMPriceChange$], ILRMMonthlyDelta€, [ILRMMonthlyDelta$], ILRMType, " _
    & "ILRMChangeCategory, ILRCurrencyUSD, AOPCurrencyUSD, PreviousSpendAOP€, [PreviousSpendAOP$], PreviousSpendILR€, [PreviousSpendILR$], LastSpendAOP€, " _
    & "[LastSpendAOP$], LastSpendILR€, [LastSpendILR$], SpendDiffAOP€, [SpendDiffAOP$], SpendDiffILR€, [SpendDiffILR$], [Increase Value], [Decrease Value], " _
    & "[SumOfSumOfAOPMMonthlyDelta$], Expl, [Incr Expl], [Decr Expl]" _
    & "INTO qdbo_TempMPC IN 'H:\VENDOR\Cost Reduction Opportunity\InflationMonitorDB\MonitoringDB\MonitoringDB.accdb'  " _
    & "FROM qry_ExportMPC " _
    & "WHERE (LastVendor=" & Me.LastVendor & ")"

Je ziet dat ik bij elk veld de querynaam heb verwijderd; die is nergens voor nodig namelijk. Kost alleen maar gruwelijk veel tekens. En de naam van de vendor moet je niet als veld in de SQL zetten, maar als waarde in de string.
 
Goedemiddag,

dankje voor de reactie. Ik zie dat ik een opstapeling van verwarringen heb gecreeerd, excuses hiervoor. Ik heb de SQL tekst van de query gepost. Ik wil dus inderdaad de naam van de tabel die nu qdbo_TempMPC heet, veranderen in een variabele naam. Liefst de combinatie van de Vendorname en de maand. Omdat ik daarmee de juiste records kan identificeren.

Moet ik dan hier zijn:

Code:
"INTO qdbo_TempMPC IN 'H:\VENDOR\Cost Reduction Opportunity\InflationMonitorDB\MonitoringDB\MonitoringDB.accdb'  " _
    & "FROM qry_ExportMPC "

Achter het INTO deel zal ik iets moeten wijzigen.
 
Dat is correct. Je krijgt dan iets als:
Code:
"INTO " & tmpVendor & " IN 'H:\VENDOR\Cost Reduction Opportunity\InflationMonitorDB\MonitoringDB\MonitoringDB.accdb'  " _
    & "FROM qry_ExportMPC "
waarbij tmpVendor de naam bevat van de vendor en de datum.
 
ik begrijp nog niet helemaal hoe ik dit moet toepassen. Zou je het wat concreter kunnen uitleggen? Ik ben geen expert (zoals je misschien wel hebt gezien). Dus ik probeer het middels deze voorbeelden vaak gewoon uit. Alvast bedankt!
 
Volgens mij moet je hiermee al een eind kunnen komen, want je LastVendor haal je uit een veld op formulier:
Code:
tmpVendor = Me.LastVendor & Format(Date, "-yyyymmdd")
 
Dan ben je rijkelijk laat, want dan heb je de query al gemaakt zonder de tmpVendor :). Da's een beetje wat wij in R'dam doen: het kampioenschap vieren voordat er een bal getrapt is :D.
Het vullen van de tmpVendor doe je natuurlijk als eerste, voordat je hem in de query zet.
 
Haha,

ja nouwja in het zuiden van het land zitten ook Feyenoordsupporters. Ik heb vandaag zodoende een slechte dag.

Maargoed. Ik ben niet helemaal thuis in VBA (althans zo uit de losse pols) zou je me een voorbeeld kunnen geven?

Dankjewel!
 
Alles samengevat van wat hierboven staat, ziet het er dan zo uit:
Code:
Dim strSQL As String, tmpVendor As String

tmpVendor = Me.LastVendor & Format(Date, "-yyyymmdd")
strSQL = "SELECT partnumber, Description, OCC, SummaryCode, SummaryDescription, SelectedBuyer, DanvilleVendor, DanvilleSales, PreviousMonth, PreviousVendorBuyer, " _
    & "PreviousVendor, PreviousVendorName, PreviousVendorFreight, PreviousAOPMPrice€, [PreviousAOPMPrice$], PreviousMSales, LastMonth, CurMonth, LastVendorBuyer, " _
    & "LastVendor, LastVendorName, LastVendorFreight, LastAOPMPrice€, [LastAOPMPrice$], LastMSales, LoggedAOPMPriceChange€, [LoggedAOPMPriceChange$], AOPMPriceChange€, " _
    & "[AOPMPriceChange$], MSalesChange, AOPMMonthlyDelta€, [AOPMMonthlyDelta$], AOPMType, AOPMChangeCategory , PreviousILRMPrice€, [PreviousILRMPrice$], LastILRMPrice€, " _
    & "[LastILRMPrice$], LoggedILRMPriceChange€, [LoggedILRMPriceChange$], ILRMPriceChange€, [ILRMPriceChange$], ILRMMonthlyDelta€, [ILRMMonthlyDelta$], ILRMType, " _
    & "ILRMChangeCategory, ILRCurrencyUSD, AOPCurrencyUSD, PreviousSpendAOP€, [PreviousSpendAOP$], PreviousSpendILR€, [PreviousSpendILR$], LastSpendAOP€, " _
    & "[LastSpendAOP$], LastSpendILR€, [LastSpendILR$], SpendDiffAOP€, [SpendDiffAOP$], SpendDiffILR€, [SpendDiffILR$], [Increase Value], [Decrease Value], " _
    & "[SumOfSumOfAOPMMonthlyDelta$], Expl, [Incr Expl], [Decr Expl]" _
    & "INTO " & tmpVendor & " IN 'H:\VENDOR\Cost Reduction Opportunity\InflationMonitorDB\MonitoringDB\MonitoringDB.accdb'  " _
    & "FROM qry_ExportMPC " _
    & "WHERE (LastVendor=" & Me.LastVendor & ")"

End Sub
Zoals ik al zei: gewoon de juiste regels op de juiste plek zetten :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan