-
Abfrage von AS400 Daten
Leider verstehe ich eigentlich garnichts von VBA, habe früher jedoch viel mit Basic programmiert.
Folgende Abfrage habe ich in einem anderen Forum gefunden und bereits angepasst mit den entsprechenden Datainamen.
Wenn ich das richtig verstehe gebe ich diesen Code in VBA ein.
Allerdings stoppt er schon in der ersten Zeile beim Debuggen.
Wie muss ich diesen Code eingeben? und warum läuft er nicht?
Ich habe ein Feld in Excel mit dem Namen mat_nr vergeben.
With ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN= AS400;", Destination:=Cells(i, 14))
.CommandText = Array("SELECT IDTLPD.DTLPLE" & Chr(13) & "" & Chr(10) & "FROM LDBSVR1.IBOL01AD.IDTLPD IDTLPD" & Chr(13) & "" & Chr(10) & "WHERE IDTLPD.DTLNR= '" & mat_nr & "')")
.Name = "Abfrage von AS400"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Besten Dank
-
SO einfach ist es nun auch wieder nicht.
Du musst im VBA-Editor dem Excel über "Extras->Verweise" die Komponente "Microsoft ActiveX Dataaccess 2.7" oder höher zuordnen.
Dann definierst du
public function GetPreis(Artikel as string) as double
static myConnect as new ADODB.Connection
static myCommand as new ADODB.Command
static myRecord as new ADODB.Recordset
with myConnect
if .state = adstateclosed then
.connectionstring="DSN=AS400"
.open
endif
end with
with myCommand
if .activeconnection is nothing then
.commandtext="SELECT IDTLPD.DTLPLE FROM LDBSVR1.IBOL01AD.IDTLPD IDTLPD WHERE IDTLPD.DTLNR=?"
set .activeconnection=myConnect
endif
end with
myCommand(0) = Artikel
with myRecord
if .state=adstateclosed then
.open mycommand
else
.requery
endif
if .eof = false then
GetPreis = myRecord(0)
endif
end with
end function
Dieser Code erhebt jetzt keinen Anspruch auf Vollständigkeit.
Durch die Static-Definition der Variablen bleibt die Verbindung erhalten, auch wenn die Funktion verlassen wird.
Last edited by Fuerchau; 21-09-04 at 19:28.
-
Vielen Dank!! Es klappt wunderbar!
Das holen der Daten beansprucht zwar ein wenig Zeit. Ist jedoch immer noch besser als abtippen.
Abtippen von einem Bildschirm zum Nächsten wird zwar noch oft gemacht, sollte jedoch im heutigen Computerzeitalter nicht mehr notwendig sein.
Danke nochmals.
-
Wenn du die Funktion noch in ein .XLA packst und über den AddIn-Manager installierst stehen sie automatisch immer zur Verfügung.
Natürlich können über diesen Weg mehrere Funktionen bereitgestellt werden.
Du solltest dir überlegen, als 2. Parameter den Feldnamen zu verwenden so dass das ganze dynamischer wird.
Von Vorteil ist dann, die Verbindung (myConnect) global zu definieren, und von jeder Funktion darauf zu referieren. Ggf. ist auch zu prüfen, ob der aktuelle Datensatz bereits der gewünschte ist, um sich das Requery zu sparen.
Dann geht das ganze auch ziemlich schnell.
Was die Antwortzeit bei dir angeht, prüfe doch per Debug (Einzelschritt) ob tatsächlich die Verbindung und das Recordset geöffnet bleiben.
-
Seit ich Office 2007 habe funktioniert das Tool nicht mehr.
Hallo,
frührer musste die Komponente "Microsoft ActiveX Dataaccess 2.7" eingefügt werden.
Welche Komponente ist es nun beim Office 2007?
Das ist wahrscheinlich die Ursache das das Makro nicht mehr funktioniert.
Ansosnten funktioniert die Datenübernahme sehr gut.
-
Neu ist die Version 2.8 (set ca. 2-3 Jahren), stelle den Verweis einfach um.
-
Vielen Dank für die Hilfe.
Similar Threads
-
By KingofKning in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 23-10-06, 17:10
-
By guru30 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 17-10-06, 11:58
-
By boco25 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 20-06-06, 15:51
-
By .max.0r in forum NEWSboard Windows
Antworten: 16
Letzter Beitrag: 11-05-06, 14:47
-
By Koelch400 in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 23-05-02, 21:38
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks