/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Databaser og program
Fra : leWorm


Dato : 08-05-04 19:39

Nu har jeg fået lavet mit program, med 5 access db tilknyttet.

nu er så bare mit problem, når jeg laver det om til en exe fil, og flytter
exe filen og db'erne, så melder programmet om fejl,
at den ikk kan finde de angivende db'er

Nu er mit spørgsmål så hvordan skal man i vb fortælle den at fx db'er ligger
i mappe som programmet, så man kan flytte mappen hvorhen man vil..


og er er nogen der kender til et installationsprogram, så man kan lave en
instalationsfil..



 
 
BSJ (09-05-2004)
Kommentar
Fra : BSJ


Dato : 09-05-04 07:01


"leWorm" <orm@leWorm.org> skrev i en meddelelse news:c7j9gj$28el$1@news.cybercity.dk...
> Nu har jeg fået lavet mit program, med 5 access db tilknyttet.
>
> nu er så bare mit problem, når jeg laver det om til en exe fil, og flytter
> exe filen og db'erne, så melder programmet om fejl,
> at den ikk kan finde de angivende db'er
>
> Nu er mit spørgsmål så hvordan skal man i vb fortælle den at fx db'er ligger
> i mappe som programmet, så man kan flytte mappen hvorhen man vil..
>
>
> og er er nogen der kender til et installationsprogram, så man kan lave en
> instalationsfil..
>
>
Den nemme løsning:
Stien til DB'en har du angivet i datakontollens "databasename".
Samme sti skal anvendes på den/de maskiner du vil installere på, dvs. under installationen bliver du nødt til
at installere i en mappestruktur der er magen til den som du har udviklet på.

anden mulighed:
Du laver en variabel der indeholder stien til databasen.
Variablen indlæses til (og fra) registreringsdatabasen ved hjælp af:
Savesetting
og
Getsetting
samtidig tilføjer du en form hvori der er mulighed for at navigere hen til DB'en f.eks. v.h.a. en
"commondialog" kontrol.
commondialog1.showopen
hvis du vælger ikke at bruge commondialog - så må du bygge en "openfile" selv, med kontrollerne "drivelist",
"dirlist" og "filelist"
anbring en label eller textboks og gem hele stien i denne.

mvh
Bjarne



Steen Gellett (22-05-2004)
Kommentar
Fra : Steen Gellett


Dato : 22-05-04 12:57


"BSJ" <bjarne.sigDETTESKALFJERNES@get2net.dk> skrev i en meddelelse
news:409dc896$0$23150$ba624c82@nntp05.dk.telia.net...
>
> "leWorm" <orm@leWorm.org> skrev i en meddelelse
news:c7j9gj$28el$1@news.cybercity.dk...
> > Nu har jeg fået lavet mit program, med 5 access db tilknyttet.
> >
> > nu er så bare mit problem, når jeg laver det om til en exe fil, og
flytter
> > exe filen og db'erne, så melder programmet om fejl,
> > at den ikk kan finde de angivende db'er
> >
> > Nu er mit spørgsmål så hvordan skal man i vb fortælle den at fx db'er
ligger
> > i mappe som programmet, så man kan flytte mappen hvorhen man vil..
> >
> >
> > og er er nogen der kender til et installationsprogram, så man kan lave
en
> > instalationsfil..
> >
> >
> Den nemme løsning:
> Stien til DB'en har du angivet i datakontollens "databasename".
> Samme sti skal anvendes på den/de maskiner du vil installere på, dvs.
under installationen bliver du nødt til
> at installere i en mappestruktur der er magen til den som du har udviklet
på.
>
> anden mulighed:
> Du laver en variabel der indeholder stien til databasen.
> Variablen indlæses til (og fra) registreringsdatabasen ved hjælp af:
> Savesetting
> og
> Getsetting
> samtidig tilføjer du en form hvori der er mulighed for at navigere hen til
DB'en f.eks. v.h.a. en
> "commondialog" kontrol.
> commondialog1.showopen
> hvis du vælger ikke at bruge commondialog - så må du bygge en "openfile"
selv, med kontrollerne "drivelist",
> "dirlist" og "filelist"
> anbring en label eller textboks og gem hele stien i denne.
>
> mvh
> Bjarne

Det var dog en vanvittig måde at gøre det på.................

Prøv dette istedet !!

I din Form_Load skal du bare sætte din databasesøgevej til App.Path

Eks.

Data1.DatabaseName = App.Path & "\xxxxxxxxxx.mdb"

På denne måde skal .exe filen og mdb filen bare følges ad...så virker det
uanset hvilket install dir brugeren vælger !!!

Husk lige at slette den i dit designvindue så den ikke følger den søgevej
som alligevel ikke eksistrere på den "anden" maskine !!


>
>



Tomas Christiansen (22-05-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 22-05-04 23:59

Steen Gellett skrev:
> Data1.DatabaseName = App.Path & "\xxxxxxxxxx.mdb"
>
> På denne måde skal .exe filen og mdb filen bare følges ad...så virker det
> uanset hvilket install dir brugeren vælger !!!

Såe? Hvad med C:\ ?

-------
Tomas


Reidar Kind (23-05-2004)
Kommentar
Fra : Reidar Kind


Dato : 23-05-04 01:33


"Tomas Christiansen" <toc-01-nospam@blikroer.dk> wrote in message
news:c8olpb$2k22$1@news.cybercity.dk...
> Steen Gellett skrev:
> > Data1.DatabaseName = App.Path & "\xxxxxxxxxx.mdb"
> >
> > På denne måde skal .exe filen og mdb filen bare følges ad...så virker
det
> > uanset hvilket install dir brugeren vælger !!!
>
> Såe? Hvad med C:\ ?

Sikker på at det finnes en C:\ ??
Et annet spørsmål er om brukeren i det hele tatt har skrive/lese rettigheter
til app.path .. menmen..

-rk



Steen Gellett (23-05-2004)
Kommentar
Fra : Steen Gellett


Dato : 23-05-04 08:43


"Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
news:c8olpb$2k22$1@news.cybercity.dk...
> Steen Gellett skrev:
> > Data1.DatabaseName = App.Path & "\xxxxxxxxxx.mdb"
> >
> > På denne måde skal .exe filen og mdb filen bare følges ad...så virker
det
> > uanset hvilket install dir brugeren vælger !!!
>
> Såe? Hvad med C:\ ?
>

Nu skriver jeg install DIR.........bemærk DIR...........C:\ er IKKE et dir

Læs lige svar inden du spiller smart !!

> -------
> Tomas
>



Tomas Christiansen (23-05-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 23-05-04 22:10

Steen Gellett skrev:
> Nu skriver jeg install DIR.........bemærk DIR...........C:\ er IKKE et dir
>
> Læs lige svar inden du spiller smart !!

Okay. Nu kan "DIR" jo stå for mange ting, men hvis det står for det, som vi
andre kalder directory/biblioteket, så må jeg oplyse dig at roden af et drev
(det behøver jo ikke ligefrem være C-drevet, men kunne så udmærket være et
netværksdrev som f.eks. P) rent faktisk er et directory/biblioteket. Nærmere
bestemt "roden" eller "rod-biblioteket". Alle andre biblioteker kaldes så
kaldes under-biblioteker.

....og lige en ting: Hvis der er nogen som spiller smart, så må det da vist
være dig, når du kommer med en ukomplet løsning uden at fortælle om dens
svagheder. Endda selvom emnet omkring brugen af App.Path og det at man ikke
kan forvente noget om hvorvidt der er backslash i slutningen af App.Path har
været oppe i gruppen flere gange. En lille note din side ville have været
nok!

Må jeg i stedet foreslå noget i retning af:

Data1.DatabaseName = PathConcat(App.Path, "xxxxxxxxxx.mdb")

Function PathConcat(ByVal Path1 As String, ByVal Path2 As String) As String
PathConcat = Left(Path1, IIf(Right(Path1, 1) = "\", _
Len(Path1) - 1, Len(Path1))) & "\" & _
Mid(Path2, IIf(Left(Path2, 1) = "\", 2, 1))
End Function

Bemærk at der er adskillige mindre kryptiske måder at implementere
"PathConcat" på, men denne implementation er forholdsvis kort.

-------
Tomas


Thomas Bøjstrup Joha~ (25-05-2004)
Kommentar
Fra : Thomas Bøjstrup Joha~


Dato : 25-05-04 21:59

> Må jeg i stedet foreslå noget i retning af:
>
> Data1.DatabaseName = PathConcat(App.Path, "xxxxxxxxxx.mdb")
>
> Function PathConcat(ByVal Path1 As String, ByVal Path2 As String) As
String
> PathConcat = Left(Path1, IIf(Right(Path1, 1) = "\", _
> Len(Path1) - 1, Len(Path1))) & "\" & _
> Mid(Path2, IIf(Left(Path2, 1) = "\", 2, 1))
> End Function
>

hvad med at bruge denne:

filname = Environment.CommandLine & " "
filname = Left(filname, InStr(filname, ".exe ", CompareMethod.Text))
filname = Left(filname, InStrRev(filname, "\"))
Data1.DatabaseName = filname & "xxxxxxxxxx.mdb"



Thomas Bøjstrup Johansen



Thomas Bøjstrup Joha~ (25-05-2004)
Kommentar
Fra : Thomas Bøjstrup Joha~


Dato : 25-05-04 22:03


Prøver lige igen


filname = Environment.CommandLine & " "
filname = Left(filname, InStr(filname, ".exe ", CompareMethod.Text))
filname = Left(filname, InStrRev(filname, "\")) & "xxxxxxxxxx.mdb"


If System.IO.File.Exists(filname) = True Then
Data1.DatabaseName = filname
Else
Console.WriteLine("Error: database file not found")
End If



Thomas Bøjstrup Johansen



Tomas Christiansen (26-05-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 26-05-04 22:51

Thomas Bøjstrup Johansen skrev:
> filname = Environment.CommandLine & " "
> filname = Left(filname, InStr(filname, ".exe ", CompareMethod.Text))
> filname = Left(filname, InStrRev(filname, "\")) & "xxxxxxxxxx.mdb"
>
> If System.IO.File.Exists(filname) = True Then
> Data1.DatabaseName = filname
> Else
> Console.WriteLine("Error: database file not found")
> End If

Èt af problemerne med din metode er at Environment.CommandLine,
System.IO.File.Exists og Console.WriteLine ikke findes i hverken VB 6.0, VB
5.0 eller tidligere versioner af VB.

Et andet problem med din metode er at du forventer at der ikke er
anførselstegn omkring sti+filnavnet og at stien ikke indeholder strengen
".exe" (hvilket er fuldt lovlig omend temmelig forvirrende).

Der er muligvis andre problemer, men da jeg ikke rigtig kender den Basic,
som du har har benyttet, kan jeg ikke rigtig afgøre det.

-------
Tomas


leWorm (09-05-2004)
Kommentar
Fra : leWorm


Dato : 09-05-04 21:56

hmm kan du ikke uddybe din anden metode lidt.. lidt mere præsist evt et
eksempel er ret ny i vb-verdenen.. ,(

på forhånd tak..

"leWorm" <orm@leWorm.org> skrev i en meddelelse
news:c7j9gj$28el$1@news.cybercity.dk...
> Nu har jeg fået lavet mit program, med 5 access db tilknyttet.
>
> nu er så bare mit problem, når jeg laver det om til en exe fil, og flytter
> exe filen og db'erne, så melder programmet om fejl,
> at den ikk kan finde de angivende db'er
>
> Nu er mit spørgsmål så hvordan skal man i vb fortælle den at fx db'er
ligger
> i mappe som programmet, så man kan flytte mappen hvorhen man vil..
>
>
> og er er nogen der kender til et installationsprogram, så man kan lave en
> instalationsfil..
>
>



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409081
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste