Avatar billede per2edb Ekspert
09. maj 2025 - 13:57 Der er 9 kommentarer

Fra SQL til mpp selekteret

Nedenfor viste koder laver en cvs fil fra SQL men kun uden WHERE i SQL
Med Where vises cvs uselekteret

Kan i anvise hvordan cvs feks kan selteres med f.eks KundeId=25 i SQL' en
eller alternativ med en kode lekteret den fulde cSV eterføjgende

Set qdf = CurrentDb.CreateQueryDef("TEMPQuery", SQL)

DoCmd.TransferText acExportDelim, "Gantt_Project_Leverancer Eksportspecifikation", "Gantt_Project_Leverancer", strPath & "\ERP_Gantt_Project_Leverancer.csv", True
Avatar billede Gustav Ekspert
09. maj 2025 - 14:13 #1
Det nemmeste er nok at tage din nuværende SQL og så tilføje dit filter, fx
Sql = Sql & " Where KundeId = " & DitFilterKundeId & ""
og så oprette din TEMPQuery og derefter bruge den ved oprettelsen af din CSV-fil.
Avatar billede per2edb Ekspert
09. maj 2025 - 16:14 #2
Det er netop hvad jeg gør men WHERE slår ikke igennem til CVS
Avatar billede Gustav Ekspert
09. maj 2025 - 16:24 #3
Det kan jeg ikke genkende. Så er forespørgslen nok ikke blevet gemt med den justerede SQL.
Avatar billede per2edb Ekspert
09. maj 2025 - 17:20 #4
Ja det går jo over en text fil så her udelades filteret formentlig

Jeg er nok nød til at filtrere cvs'en efter den er dannet

Har du en smart måde at gøre det på
Avatar billede Gustav Ekspert
09. maj 2025 - 19:26 #5
Næh, det jeg mente, var noget i stil med:
Dim Query   As DAO.QueryDef

Dim Sql    As String
Dim KundeId As Long

KundeId = 25

Set Query = CurrentDb.QueryDefs("Gantt_Project_Leverancer")
Sql = Query.SQL
Query.Close

Sql = Sql & " Where KundeId = " & KundeId & ""

Set Query = CurrentDb.CreateQueryDef("TEMPQuery", Sql)
Query.Close

DoCmd.TransferText acExportDelim, "Gantt_Project_Leverancer Eksportspecifikation", "TEMPQuery", strPath & "\ERP_Gantt_Project_Leverancer.csv", True
Avatar billede per2edb Ekspert
10. maj 2025 - 11:36 #6
Desværre det virker ikke med selekteringen

Uden linien
Sql = Sql & " Where KundeId = " & KundeId & ""
Dannes en CVS fil korrekt men medtages linien
dannes der ingen CVS
Avatar billede Gustav Ekspert
10. maj 2025 - 18:30 #7
1. Kontrollér, at der ikke er et afsluttende semikolon i din SQL
2. Brug Debug.Print til at udskrive den færdige SQL med kundefilter
3. Kopiér den færdige SQL ind i en tom forespørgsel og find ud af, hvorfor den ikke virker
Avatar billede per2edb Ekspert
11. maj 2025 - 11:59 #8
Respekt - du satte lige fingeren på fejlen
Før benyttede jeg en SQL slect ...  lige før kaldene
Efter din anvisning gik jeg over til at kalde forespørgslen
Set Query = CurrentDb.QueryDefs("Gantt_Project_Leverancer")

men herfra ligger der et ; i bunden
Efter at have prøvet med det gamle SQL uden ; virker sekteringen

Jeg kan ikke undertrykke ; i forespørgslerne
Hvordan undgår man at de bliver sat automatisk?
Avatar billede Gustav Ekspert
11. maj 2025 - 19:27 #9
Hvis du åbner forespørgslen i SQL view, vil du kunne slette semikolonnet.
Gemmer du derefter straks forespørgslen, hægtes ikke noget semikolon på.

Hvis du senere åbner forespørgslen i Design view og ændrer noget og gemmer den, vil den sikkert på ny have fået et semikolon hægtet på. Så, før du gemmer den, skift til SQL view og kontrollér, at semikolonnet er fjernet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester