| |
VB & DatenbankenExe 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 | |
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. | |
Re: Exe File erstellen | | | Autor: Rippler | Datum: 20.02.12 20:49 |
| mach ein .vbs daraus | |
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 | |
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 | |
Re: Exe File erstellen | | | Autor: Franki | Datum: 23.02.12 00:22 |
| Hallo
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
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 | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere Infos
|