Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Definierte Abfrage für VBA

Frage Entwicklung VB for Applications

Mitglied: VBSnoobDlu

VBSnoobDlu (Level 1) - Jetzt verbinden

17.07.2008, aktualisiert 15:52 Uhr, 5418 Aufrufe, 5 Kommentare

HI,
Ich habe mal ne echt dumme Frage aber komme einfach nicht darauf.

Ich habe eine Datenbank die einige dinge tut (Sind für die Frage nicht wichtig ;) )
so nun habe ich eine Abfrage geschrieben und gespeichert (abf_ColB)
wie kann ich in VBA nun mit dem Ergebnis dieser Abfrage arbeiten?
Das Ergebnis sind einige Zeilen also muss in einem Object gespeichert werden nur wie führe ich die Abfrage in VBA aus??

habe bis dato immer folgendes gemacht:


Sub bla()
DIM SQLCB as String
DIM Rec as Object

SQLCB = "Select * from tbl_bla;"

Set Rec = CurrentDb.OpenRecordset(SQLCB)



So würde ich es so auch weitermachen, doch der SQL-Tag ist zu lang und hat zuviele Variablen die ich in VBS nicht mehr getrennt bekommen ;)

bsp:
SELECT tbl_Pressplan.F_Nummer AS [F-Nr], tbl_Pressplan.Kunde, tbl_Pressplan.Modell, tbl_Pressplan.Folie, tbl_Pressplan.Menge, [Hübe] & "/" & summ([Startdatum],[Startzeit],[Maschine]) AS Hub, [Startdatum] & " " & [Startzeit] AS Start, IIf([Gespritzt] Is Null,"","x") AS SP, tbl_Pressplan.Text AS Zusatz, tbl_produktion.Text AS Auftragstext FROM tbl_Pressplan LEFT JOIN tbl_produktion ON tbl_Pressplan.F_Nummer_Auswahl = tbl_produktion.z10_faufnr WHERE (((tbl_Pressplan.Maschine)="Col. B") AND ((tbl_Pressplan.Erledigt) Is Null)) ORDER BY tbl_Pressplan.Startdatum, tbl_Pressplan.Startzeit;


Also wie kann ich eine definierte Access-Abfrage (abf_ColB) in VBA ausführen und das Ergebnis bearbeiten?


Danke schon mal für die Hilfe

Daniel
Mitglied: Logan000
17.07.2008 um 11:19 Uhr
Moin

..., doch der SQL-Tag ist zu lang und ...
Zu lang für was?

...hat zuviele Variablen die ich in VBS nicht mehr getrennt bekommen ;)
Welche Variablen und warum wist du diese trennen?

Vielleicht hilft Dir das weiter:
01.
DIM SQLCB as String 
02.
DIM Rec as Object 
03.
SQLCB = "SELECT tbl_Pressplan.F_Nummer AS [F-Nr], tbl_Pressplan.Kunde, " 
04.
SQLCB = SQLCB & "tbl_Pressplan.Modell, tbl_Pressplan.Folie, tbl_Pressplan.Menge, " 
05.
SQLCB = SQLCB & "[Hübe] & "/" & summ([Startdatum],[Startzeit],[Maschine]) AS Hub, " 
06.
SQLCB = SQLCB & "[Startdatum] & " " & [Startzeit] AS Start, IIf([Gespritzt] Is Null,"","x") AS SP, "  
07.
SQLCB = SQLCB & "tbl_Pressplan.Text AS Zusatz, tbl_produktion.Text AS Auftragstext " 
08.
SQLCB = SQLCB & "FROM tbl_Pressplan LEFT JOIN tbl_produktion ON " 
09.
SQLCB = SQLCB & "tbl_Pressplan.F_Nummer_Auswahl = tbl_produktion.z10_faufnr " 
10.
SQLCB = SQLCB & "WHERE (((tbl_Pressplan.Maschine)="Col. B") AND " 
11.
SQLCB = SQLCB & "((tbl_Pressplan.Erledigt) Is Null)) " 
12.
SQLCB = SQLCB & "ORDER BY tbl_Pressplan.Startdatum, tbl_Pressplan.Startzeit;" 
13.
 
14.
Set Rec = CurrentDb.OpenRecordset(SQLCB)
Gruß L.
Bitte warten ..
Mitglied: VBSnoobDlu
17.07.2008 um 11:33 Uhr
Hi und Danke,
daher das ich den Tag ja in VBA verwenden würde müsste ich Ihn umbasteln, da ja jedes " bedeutet Befehl beendet.

habe schon raus wie ich weiter machen muss ist ja doch relative leicht ;)

stAbfName = "abf_ColB"
Set Rec = CurrentDb.OpenRecordset(stAbfName)


jetzt muss ich nur noch zusehen wie ich die einzelnen Antwortzeilen aus dem Rec Object bekomme.

aber wo ein Wille ist, ist auch ein weg

Danke für dein Post aber finde Ihn zu lang ... der SQL-Tag ist nun mal bissel länger und
das Problem ist eigentlich ja nur das wenn da mal jemand anderes reinschaut erst den kompletten Tag zusammen Sätzen muss um Ihn zu verstehen.


Wie heißt es so schön

quick and dirty

aber wenn du einen Anreiz hast wegen der sache mit dem Rec object bin ich ganz Ohr


Gruß
Bitte warten ..
Mitglied: Logan000
17.07.2008 um 12:09 Uhr
aber wenn du einen Anreiz hast wegen der sache mit dem Rec object bin ich ganz Ohr
Du arbeitest in VBA unter...
Access? Welche Version?

Hast du einen Verweis gesetzt auf Microsoft ActiveX Data Objects?

Probiers mal mit
<code>
...
DIM Rec as ADODB.Recordset
...
</code

Jetzt solten dir eigenlich alle Eigenschaften und Methoden angeboten werden sobald zu Rec. tippst.
Den Rest soltest Du in der Hilfe finden.

Gruß L.
Bitte warten ..
Mitglied: VBSnoobDlu
17.07.2008 um 12:31 Uhr
es ist Access 2002

habe das mal getestet was du geschrieben hast:
DIM Rec as ADODB.Recordset

das Problem ist das ich Rec ja als Object deklariert habe,
nun bekomme ich die Fehlermeldung doppel deklaration.

Wenn ich die Object deklaration entferne bekomme ich eine Typenunverträglichkeit bei ausführen

Rec = currentDB.OpenRecordSet(SQL)

aber werde da mal ansetzen sollte machbar sein,

Ich bedanke mich für deine Hilfe.
Bitte warten ..
Mitglied: Logan000
17.07.2008 um 15:52 Uhr
Sorry da habe ich geschlafen.

So in etwa soltes du mit den Ergebnissen arbeiten können:
01.
Dim rec As Recordset 
02.
Dim tAbfName As String 
03.
 
04.
tAbfName = "abf_ColB" 
05.
Set rec = CurrentDb.OpenRecordset(tAbfName ) 
06.
rec.MoveFirst 
07.
While Not rec.EOF 
08.
    Debug.Print rec.Fields(0).Value   ' Inhalt 1. Feld 
09.
    Debug.Print rec.Fields(1).Value   ' Inhalt 2. Feld usw. 
10.
    rec.MoveNext 
11.
Wend
Gruß L.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst VBA Excel Recordset - Abfrage auf SQL-Server (4)

Frage von Aximand zum Thema VB for Applications ...

VB for Applications
Excel VBA Sortierung von Daten (5)

Frage von easy4breezy zum Thema VB for Applications ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...