vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Exe File erstellen 
Autor: Clondike
Datum: 20.02.12 18:15

Hallo,

wie kann ich eine .accdb auf einem Rechner ausführen, wenn kein Access vorhanden ist ?

Es geht da nur um die unten angeführte Prozedur, die keine Tabellen benötigt, sondern nur dazu dient, Eingespeiste Dateien zu splitten,konvertieren nund in ein anderes Verzeichnis zu kopieren,
die jetzt über eine Schaltfläche aus einem Formular ausgeführt wird.

Das heißt, ich möchte ein "EXE" oder eine andere ausführbare Datei erstellen, die durch Anwahl diese Prozedur ausführt - Wie kann ich das realisieren?

Vielen Dank für eure Hilfe und Tipps

Roland

=========================================================================================

Private Sub F_konvert_Click()

'--Variablen für Verzeichnis / Dateiauswahl declarieren -------------------------------------------

Dim strDatei_alt As String
Dim strDatei_neu As String

Dim pfad_aktuell As String
Dim pfad_neu As String
Dim pfad_copy As String

Dim z As Integer
Dim inhalt As String

'-- Fehlerroutine festlegen -----------------------------------------------------------------------

On Error GoTo Fehlerbehandlung

'--Pfad festlegen ---------------------------------------------------------------------------------

pfad_aktuell = CurrentDb.Name

While Right$(pfad_aktuell, 1) <> "\"
pfad_aktuell = Left$(pfad_aktuell, Len(pfad_aktuell) - 1)
Wend

'---- hier das gewünschte Verzeichnis zum auslesen der Dateien angeben ----------------------------

strDatei_alt = Dir(pfad_aktuell)

'---- Dateien auslesen, trennen und neu zusammenstellen -------------------------------------------

While strDatei_alt <> ""
z = 1
strDatei_neu = ""
pfad_neu = ""

'---- Erster Teil bis zum Underline von der Datei trennen -----------------------------------------

If Right(strDatei_alt, 5) <> "accdb" Then
inhalt = Mid$(strDatei_alt, z, 1)
While inhalt <> "_"
z = z + 1
inhalt = Mid$(strDatei_alt, z, 1)
Wend

'---- Zweiter Teil vom 1. Underline bis zum 2.Underline -------------------------------------------
'---- als neues Verzeichnis auslesen und wenn nicht vorhanden, erstellen---------------------------

If inhalt = "_" Then inhalt = ""
While inhalt <> "_"
z = z + 1
inhalt = Mid$(strDatei_alt, z, 1)
If inhalt <> "_" Then
pfad_neu = pfad_neu & inhalt
End If
Wend
If pfad_neu <> "" Then
pfad_neu = pfad_aktuell & pfad_neu
MkDir pfad_neu
End If

'---- Datei (2. Teil des Dateinamens) erstellen und in das Verzeichnis kopieren -------------------

If inhalt = "_" Then inhalt = " "
While inhalt <> ""
z = z + 1
inhalt = Mid$(strDatei_alt, z, 1)
strDatei_neu = strDatei_neu & inhalt
Wend
pfad_source = pfad_aktuell & strDatei_alt
pfad_neu = pfad_neu & "\" & strDatei_neu

FileCopy pfad_source, pfad_neu
End If
strDatei_alt = Dir
Wend

'---------------------------------------------------------------------------------------------------
Ende:
Exit Sub
'---------------------------------------------------------------------------------------------------

Fehlerbehandlung:

If Err.Number = 75 Then
Resume Next
Else
Resume 0
End If

GoTo Ende

End Sub

Hallo -

bin neu hier und habe ein massives Problem mit bedingter Formatierung, die mehr als 4 Werte abfragen soll. Bin ein guter VBA Anwender, habe aber bis jetzt noch keine M?glichkeit gef?nden, das Problem zu l?sen.

Beispiel:

Wenn Code = Nk, d

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: wb-soft
Datum: 20.02.12 18:58

Hi!

Keine Ahnung, was du willst. Dieser Code kann jedenfalls nicht funktionieren.

Wenn du die entsprechenden Tags verwenden würdest wäre der Code zumindest leichter lesbar. Damit würde die Chance auf eine Antwort steigen.


mfg

WB

PS: Deine Signatur ist vornehm ausgedrückt exzentrisch.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Rippler
Datum: 20.02.12 20:49

mach ein .vbs daraus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: wb-soft
Datum: 20.02.12 20:55

Hi!

Nachdem ich deinen anderen Thread gesehen habe weiß ich jetzt zumindest, was du willst.

Um diesen Code zu kompilieren brauchst du VB6.

Diese Zeile funktioniert mit VB6 nicht:
pfad_aktuell = CurrentDb.Name
Das geht nur mit Access.

Der Vorschlag von Rippler ist vermutlich die beste Lösung.
Dazu sind nur kleinere Änderungen notwendig.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Franki
Datum: 22.02.12 01:36

Hallo,

ein Punkt der Ausgangsfrage war ja, dass Access nicht installiert ist und es trotzdem funktionieren soll.

CurrentDB.xxx funktioniert halt nur mit Acces, egal ob per VB6 oder VBS angesprochen. Deswegen glaube ich nicht, dass der Vorschlag von Rippler zielführend ist wenn kein Access vorhanden.

Ich würde da vorschlagen die Datei selbst anzusprechen aus VB6 per ADO / DAO, dann braucht es kein installiertes Access auf dem Zielrechner. Oder halt auch per ADO.NET / VB.NET z.B.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: wb-soft
Datum: 22.02.12 09:35

Hi!

@Franki
Anscheinend hast du auch nicht erkannt, was Clondike eigentlich will. Ging mir genauso bis ich das gesehen habe:
http://www.vbarchiv.net/forum/id2_i139008t139008_aktuelles-verzeichnis-auslesen-und-darin-befindliche-dateinamen-aendern.html
Eigentlich hat das mit Access nichts zu tun. Es wurde wohl nur benutzt, um Code auszuführen.
Diese Zeile
pfad_aktuell = CurrentDb.Name
funktioniert natürlich nur mit Access, aber der StartPfad kann ja auch anders festgelegt werden.

Eine Anpassung an VBS scheint also durchaus möglich, wenn keine Programmierumgebung zur Verfügung steht.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Franki
Datum: 23.02.12 00:22

Hallo

Zitat:



@Franki
Anscheinend hast du auch nicht erkannt, was Clondike
eigentlich will. Ging mir genauso bis ich das gesehen habe:
http://www.vbarchiv.net/forum/id2_i139008t139008_aktuelles-verzeichnis-auslesen-und-darin-befindliche-dateinamen-aendern.html
Eigentlich hat das mit Access nichts zu tun. Es wurde wohl
nur benutzt, um Code auszuführen.


In der Tat, ich habe das auch jetzt erst erkannt, danke für den Hinweis.
Mit dem Rest deiner Ausführungen hast du dann natürlich völlig recht.

Es geht halt nichts über unmissverständlich formulierte Fragen, aber gut so ist es halt.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Clondike
Datum: 23.02.12 15:36

Hallo,

zuerst vielen Dank für die Inputs.

Ja
, das ist tgatsächlich so, ich wollte den Code zuerst mit Access testen, da ich mich darin am besten auskenne. Das heißt, dieser Code funktioniert einwandfrei, wenn ich diese accdb ausführe und über eine Schaltfläche das Ereignis auslöse.

Ich habe gerade VisualBasic2008 heruntergeldaen und versuche, diesen Code zu übernehmen, anzupassen und daraus ein EXE-File zu erstellen.

Mal sehen was passiert

Schöne grüße aus Österreich

Roland

Hallo -

bin neu hier und habe ein massives Problem mit bedingter Formatierung, die mehr als 4 Werte abfragen soll. Bin ein guter VBA Anwender, habe aber bis jetzt noch keine M?glichkeit gef?nden, das Problem zu l?sen.

Beispiel:

Wenn Code = Nk, d

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: wb-soft
Datum: 23.02.12 21:03

Hi!

Wenn du kein VB6 hast, was ziemlich wahrscheinlich ist, dürfte VBS die Beste Wahl sein.

VB2008 verlangt das Net.Framework, und du kannst dich nicht darauf verlassen, daß es auf jedem Rechner vorhanden ist. Schließlich ist die Verbreitung von XP noch ziemlich groß.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Franki
Datum: 23.02.12 23:08

Hallo,

Zitat:


Ich habe gerade VisualBasic2008 heruntergeldaen und versuche,
diesen Code zu übernehmen, anzupassen und daraus ein EXE-File
zu erstellen.


Warum die 2008er Version?
Beim Umstieg von VBA auf VB.NET musst du sowieso neu lernen, also warum nicht gleich mit der aktuellen Version anfangen? (2010)

Aber unanbhängig davon wäre es besser den Code komplett neu zu schreiben, du kannst mit VB.NET das Framework nutzen, das ist zwar eine Umstellung aber es lohnt sich und es gibt viel mehr Möglichkeiten als in VBA.

Gruß und viel Erfolg,

Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: eierlein
Datum: 23.02.12 23:42

Eine andere Möglichkeit ist ein Powerbasic Compiler.
Für deine Zwecke reicht die sogenannte 'Classic' Version 8.

Mit folgenden Änderungen erstellst du eine knapp 10k große .exe.

' Änderungen bei PB
' PRIVATE SUB F_konvert_Click() > SUB F_konvert_Click()
' DIR > DIR$
' RIGHT > RIGHT$
' Err.Number > ERR
' RESUME 0 > RESUME

' pfad_source -- war nicht geDIMt
' pfad_aktuell = CurrentDb.Name -- Pfad muss angepasst werden
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: wb-soft
Datum: 24.02.12 10:17

Hi!

Für eine einmalige Verwendung dürfte die Investition doch überzogen sein, da es ja auch kostenlose Alternativen gibt.

Falls Clondike es nicht selbst hinkriegt kann er ja noch immer jemanden suchen, der das Kompilieren für ihn übernimmt.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Clondike
Datum: 24.02.12 10:46

Hallo ,

Ich finde es super, wie in diesem Forum umgegangen wird. Vor allem die wirkliche Hilfe, auch wie
wb-soft schreibt, eine sinnvolle Hilfe - (Berücksichtigung der Nebenaspekte. zb: wirtschaftlichkeit usw.) Ich als "VB-neuliung" kann dieses Forum nur weiterempfehlen.

Zurück zu mir - ich habe mich ein bisschen dahintergeklemmt in VCB2008 und taste mich mit meinen noch dürftigen Möglichkeiten und Kenntnisse an´die Lösung heran.
Ist das EXE-File, das im Ordner "bin" erstellt wird an eine installierte Software gebunden ?

Sollte mein Code ind der angesprochenen Thematik einmal funktionieren, stelle ich diesen gerne zur Verfügung.

Schöne grüße und DANK für eure Hilfe

Roland Ender

Hallo -

bin neu hier und habe ein massives Problem mit bedingter Formatierung, die mehr als 4 Werte abfragen soll. Bin ein guter VBA Anwender, habe aber bis jetzt noch keine M?glichkeit gef?nden, das Problem zu l?sen.

Beispiel:

Wenn Code = Nk, d

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: wb-soft
Datum: 24.02.12 10:59

Hi!

Wie schon erwähnt basiert VB.Net auf dem dazugehörigen Framework. Davon gibt es inzwischen schon einige Versionen.

Besonders bei älteren Windowsversionen ist damit zu rechnen, daß diese Framework nicht vorhanden ist. Es kann allerdings gratis von MS bezogen werden.

Ich persönlich würde mir aber nicht 300MB installieren, nur um ein 20 Zeilen langes Programm zu verwenden.


mfg

WB
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Rippler
Datum: 24.02.12 13:22

schau dir bitte dieses für
deine zwecke voll funktionsfähiges
beispiel an

Set WshShell = CreateObject("Wscript.Shell")
Pfad = WshShell.CurrentDirectory
If Right(Pfad,1)<>"\" then Pfad = Pfad & "\"
 
Set FSO=CreateObject("Scripting.FileSystemObject")
Set Folder=FSO.GetFolder(Pfad)
 
For Each File in Folder.Files
   If Right(File,3) <> "vbs" Then
      x = Split(File,"_")
      x(0)= x(1) & "\" & x(2)
      If FSO.FolderExists(x(1)) = False Then
         FSO.CreateFolder(x(1))
      End If
      FSO.CopyFile File,x(0)
   End If
Next
einfach in deinem verzeichnis eine textdatei mit rechtsclick erstellen
obigen code copieren und in die textdatei einfügen
dann die text datei beliebig umbenennen
den txt Extender in vbs umbenennen und windowsmeldung ignorieren
danach genügt ein doppelclick um das script auszuführen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Clondike
Datum: 25.02.12 14:04

Hallo Rippler,

ich habe das so gemacht wie vorgeschlagen, haut aber nicht hin.
Bis zum "Create folder = Save" passt die Sache noch.

ab der Right-Anweisung wird aber nichts mehr ausgeführ, sondern er steigt mit der
Fehlermeldung :

Script =: C:\inel_gue\inel_vbs
zeile =: 25
zeichen =: 3
Fehler =: Anweisung erwartet
Code =: 800A0400
Quelle =: Kompilierungsfehler in Microsoft VBScript

aus.


--------------------------------------------------------------

Set WshShell = CreateObject("Wscript.Shell")
Pfad = WshShell.CurrentDirectory


If Right(Pfad,1)<>"\" then
Pfad = Pfad & "\"
end if

Set FSO=CreateObject("Scripting.FileSystemObject")
Set Folder=FSO.GetFolder(Pfad)

if FSO.folderExists("save") = False then
FSO.createfolder("save")
end if

For Each File in Folder.Files
bis hierher noch OK , ab der Right-Anweisung wird nichts mehr ausgeführt.---


If Right(File,3) <> "vbs" Then
x = Split(File,"_")
x(0)= x(1) & "\" & x(2)
If FSO.FolderExists(x(1)) = False Then
FSO.CreateFolder(x(1))
End If
FSO.CopyFile File,x(0)
Endif
Next

-------------------------------------------------------------------------

läßt sich die VBS-Kompilierung ohne Fehler ausführen oder wird dieser einfach ignoriert ?

Bitte noch einmal um einen Hinweis

Danke

Roland

Hallo -

bin neu hier und habe ein massives Problem mit bedingter Formatierung, die mehr als 4 Werte abfragen soll. Bin ein guter VBA Anwender, habe aber bis jetzt noch keine M?glichkeit gef?nden, das Problem zu l?sen.

Beispiel:

Wenn Code = Nk, d

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Rippler
Datum: 25.02.12 14:27

in der vorletzten zeile
das "endif" muss in "end if"
geändert werden
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Exe File erstellen 
Autor: Clondike
Datum: 25.02.12 20:51

Hallo Rippler,

Super, hat jetzt alles geklappt - Dank der super-Forum Hilfe.

Hm - wie kann ich mich erkenntlich zeigen ?? Bist a Schifahrer in Österreich (kriegsta a Tageskarte)
oder was kann ich dir sonst tun ?

Schöne Grüße aus Vorarlberg

Roland

Hallo -

bin neu hier und habe ein massives Problem mit bedingter Formatierung, die mehr als 4 Werte abfragen soll. Bin ein guter VBA Anwender, habe aber bis jetzt noch keine M?glichkeit gef?nden, das Problem zu l?sen.

Beispiel:

Wenn Code = Nk, d

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel