Avatar billede acw Nybegynder
04. september 2003 - 15:07 Der er 21 kommentarer og
1 løsning

db query

Ville det være muligt at oprette en knap der, afhængigt af hvilket navn der stod i en bestemt celle, at få et "åbn" billede frem der har en række .csv filer og så få dem ind i excel ved at oprette en ny databaseforespørgsel (har installeret .csv i ODBC).

Det er lidt svært at forklare.
Avatar billede acw Nybegynder
04. september 2003 - 15:08 #1
grunden til navnet i en celle, er at man kun må kunne søge i sin egen mappe efter filer med data. Det er til timeregistrering.
Avatar billede jkrons Professor
04. september 2003 - 15:36 #2
Denne kode viser Åbn dialogboksen for an mappe, hvis sti specificeres i A1.

Dim map As String
map = Range("a1").Value
ChDir map
Application.Dialogs(xlDialogOpen).Show
Avatar billede acw Nybegynder
04. september 2003 - 16:58 #3
når man kører dette script åbner den i 'dokumenter'
Avatar billede jkrons Professor
04. september 2003 - 16:59 #4
Hvad skriver du i A1?
Avatar billede acw Nybegynder
04. september 2003 - 17:05 #5
eksempelvis c:\

både med og uden "" virker det ikke ordentligt

Office XP
Avatar billede acw Nybegynder
04. september 2003 - 17:10 #6
har fixet det. Skal bare ændre på startfilplacering i indstillinger.

Så langt så godt. Det skal nu kobles sammen med en ny databaseforespørgsel hvor man vælger filen der skal sættes ind i arket, hvorefter den selv klarer resten.
Avatar billede jkrons Professor
04. september 2003 - 17:12 #7
Ovenstående virker fint hos mig uden "".
Avatar billede acw Nybegynder
05. september 2003 - 09:12 #8
vil det være muligt at få programmet til at checke om der er filer i den pågældende mappe? Og hvis der ikke er, skal den komme med

MsgBox "Du har ikke gemt nogle filer!", vbCritical
Avatar billede jkrons Professor
05. september 2003 - 10:09 #9
Denne del er nem :-)

Dim map As String
map = Range("a1").Value
a = Dir(map)
If a = "" Then
MsgBox "Du har ikke gemt nogen filer", vbCritical
else
ChDir map
Application.Dialogs(xlDialogOpen).Show
end if

Jeg arbejder stadig lidt med kun at få den til at vise csv filer.
Avatar billede acw Nybegynder
05. september 2003 - 11:27 #10
nu ser den sådan ud, og nu kommer msgbox, ligemeget hvilken mappe den sættes til at åbne i:

Private Sub CommandButton5_Click()

If Range("D2").Value = "" Then
    MsgBox "Der er ikke angivet et navn!", vbCritical
    Exit Sub
    End If

Dim map As String

map = "c:\timeregistrering\databaser\" & Range("D3").Value

If Dir(map, vbDirectory) = "" Then MkDir map

a = Dir(map)
If a = "" Then
MsgBox "Du har ikke gemt nogen filer", vbCritical
Exit Sub
End If

ChDir map
Application.GetOpenFilename FileFilter:="Ufærdige skemaer (*.csv), *.csv", Title:="Vælg ufærdigt skema"

End Sub
Avatar billede jkrons Professor
05. september 2003 - 11:34 #11
Hvad er der, du forventer, der skal stå i D2 hhv D3?
Avatar billede acw Nybegynder
05. september 2003 - 11:37 #12
I D2 Står brugerens navn, og i D3 står brugerens Initialer på baggrund af navnet. I mappen c:\timeregistrering\databaser\ ligger en mappe for hver bruger med initialerne som mappenavn
Avatar billede jkrons Professor
05. september 2003 - 11:47 #13
Prøv at rette til:

a = Dir(map & "\*.csv")
Avatar billede jkrons Professor
05. september 2003 - 11:48 #14
Men hvis der ligger en mappe med brugerens initialer er linien

If Dir(map, vbDirectory) = "" Then MkDir map

meningsløs. Den laver jo mappen. Er det ikke bedre at gre det på et tidspunkt, hvor du prøver at gemme noget i den?
Avatar billede acw Nybegynder
05. september 2003 - 11:51 #15
Det er bare en sikring, hvis en eller anden nar sletter mappen.
Avatar billede acw Nybegynder
05. september 2003 - 11:52 #16
a = Dir(map & "\*.csv")

virker.
Avatar billede jkrons Professor
05. september 2003 - 11:53 #17
Helt i orden. Vikede forslaget? Det virker i hvert fald hos mig.
Avatar billede jkrons Professor
05. september 2003 - 11:53 #18
Du svarede før jeg fik spurgt :-)
Avatar billede acw Nybegynder
05. september 2003 - 11:59 #19
:)

Nu er jeg da nået et skridt videre. Nu skal den fil der vælges indsættes i regnearket ( i det samme ark), og har fundet ud af, at den eneste måde er at oprette en ny forespørgsel i data --> hent eksterne data --> opret ny forespørgsel.

Kan dette lade sig gøre at sætte sammen med ovenstående knap, eller bliver det uden for dit område? Jeg kan eventuelt sende dig filen, så du kan se hvad det hele går ud på, du har trods alt hjulpet med en del i det, uden at ane formålet.
Avatar billede jkrons Professor
05. september 2003 - 12:01 #20
Jeg vil gerne se nærmere på det, men det kanm først blive om en times tid eller to. Du kan evt sende din fil til jkr@lyngby.nu
Avatar billede jkrons Professor
05. september 2003 - 14:24 #21
Jeg har kigget på den, men kan ikke lige gennemskue det. Prøv evt. at indspille dette som en makro, og overfør så koden til din knap.

Alternativ skal du nok oprette dette som et helt nyt spørgsmål om automatisering af ODBC driveren.
Avatar billede jkrons Professor
05. september 2003 - 14:26 #22
En anden ide kunne være simpelthen at kopiere data tilbage til Excel i stedet for at importere dem.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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