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

Access 2003 - Recordset

Frage Entwicklung VB for Applications

Mitglied: e2Mario

e2Mario (Level 1) - Jetzt verbinden

14.07.2009, aktualisiert 11:21 Uhr, 6322 Aufrufe, 9 Kommentare

Hallo an alle,

ich würde mal wieder Hilfe in Access VBA benötigen.

Folgende Situation:

Ich erstelle anhand einer Tabellenerstellungsabfrage die tabelle: tmp_tabelle.
In dieser Tabelle stehen Daten für einen Späteren Bericht Namens: rpt_bericht
In der Tabelle tmp_tabelle gibt es unter anderem ein Feld das sich "ZahlungsBedingung" nennt.

Mein Ziel ist es nun per VBA prüfen zu können welcher Kunde (Feldname: Name1) in der Tabelle tmp_tabelle eine Zahlungsbedingung hat welche mit NACHN* beginnt.
(In Summe gibt es 3 Zahlungsbedingungen welche passen können NACHN -2%, NACHN -3%, NACHN - 5%).
Diese Kunden sollten anschließend mit der Meldung:
ACHTUNG: Kunden [Name1]
Kunden [Name1]
Kunden [Name1] sind per Nachnahme zu liefern.

in einer MxgBox erscheinen.

Hoffe ich habe mir verständlich genug ausgedrückt, und mir kann jemand helfen.
Ich vermute mal das ich dafür mit Recordset arbeiten muss, habe jedoch keine Ahnung wie ich das angehen soll....

DANKE für Eure HILFE!

lg
Mario
Mitglied: tannerli
14.07.2009 um 12:09 Uhr
Hi e2Mario

Meine Kenntnisse sind zwar auch nicht mehr so ganz aktuell, aber letztes Mal als ich sowas gemacht habe ging das in etwa so:

01.
Dim rs as recordset 
02.
Dim qry 
03.
 
04.
qry = "SELECT Zahlungsbedingung, Name1 FROM tmp_tabelle WHERE Zahlungsbedingung LIKE 'NACHN%" 
05.
 
06.
Set rs = CurrentDb().OpenRecordset(qry) 
07.
 
08.
If rs.RecordCount Then 
09.
   rs.MoveFirst 
10.
   While Not rs.EOF 
11.
      Msgbox "Kunde " & rs.Fields.Item("Name1").Value & " muss per NN geliefert werden" 
12.
      rs.MoveNext 
13.
  Wend 
14.
Else 
15.
   MsgBox "Keine Einträge per Nachnahme" 
16.
End If 
17.
      
irgendwie sowas... ich erhebe weder anspruch auf vollständigkeit noch auf richtigkeit ;)
Bitte warten ..
Mitglied: e2Mario
14.07.2009 um 12:47 Uhr
Hallo,

also das irgenwie sind schon 99,9% - DANKE DIR!
Das einzige Problem liegt noch bei " Zahlungsbedingung LIKE 'NACHN%" --> Syntaxfehler
Wenn ich anstelle von LIKE 'NACHN% die einzlenen Zbdg einzeln eingebe, klappt es schon wunderbar

Vielleicht bekommen wir das auch noch hin...

Danke!
Bitte warten ..
Mitglied: tannerli
14.07.2009 um 12:57 Uhr
Jap, der Syntaxfehler ist hier

qry = "SELECT Zahlungsbedingung, Name1 FROM tmp_tabelle WHERE Zahlungsbedingung LIKE 'NACHN%'"

nach dem %-Zeichen braucht es noch ein einzelnes ' um die Bedingung zu vervollständigen... das hatte ich vorhin wohl vergessen...
Bitte warten ..
Mitglied: e2Mario
14.07.2009 um 13:25 Uhr
Hallo,

danker aber nein, das war er leider nicht,...
Der Code läuft zwar durch, jedoch werden die NACHN* nicht erkannt...

Eine Zusatzfrage hätte ich noch:
Ist es möglich alle Kunden mit NN in nur EINER Messagebox anzuzeigen. Bei bis zu 15 NN Sendungen kann das klicken ja zu richtiger Arbeit werden

DANKE!
Bitte warten ..
Mitglied: tannerli
14.07.2009 um 13:35 Uhr
Langsam habe ich hier so das Gefühl das ich keinen Support sondern mehr Programmiernug auf Auftrag betreibe...

Also 1. zur Query: Du hast schon NACHN% und nicht NACH* verwendet oder? (mit % und nicht *). Ich hab das so getestet und hat auch wunderbar funktioniert. (Zugegeben unter MSSQL2005 anstelle von Access aber sollte trotzdem gehen).
Ansonsten findest du unter http://sql.1keydata.com/de/sql-like.php eine gute Referenz wie das mit LIKE aussehen sollte. (Erstes google ergebnis nach 'sql like' übrigens... )

Und 2. zur einen Msgbox.

Ersetze
01.
   While Not rs.EOF  
02.
      Msgbox "Kunde " & rs.Fields.Item("Name1").Value & " muss per NN geliefert werden"  
03.
      rs.MoveNext  
04.
  Wend 
durch

01.
While Not rs.EOF 
02.
   liste =  liste & rs.Fields.Item("Name1").Value & vbCRLF 
03.
   rs.MoveNext 
04.
Wend 
05.
Msgbox "Folgenden Kunden sind per NN zu bedienen:" & vbCRLF & liste
cheers
Bitte warten ..
Mitglied: e2Mario
14.07.2009 um 13:54 Uhr
Nein nein, soweit lassen wir es nicht kommen...
Klar habe ich % anstelle von * verwendet. Die SQL Befehle like habe ich mir auch vorher angesehen....
Keine Angst, ich will mich hier nicht nur "bedienen" lassen, und einen auf Faul machen!

Welche Variante von LIKE ich auch verwende er checkt meine NN nicht...
Habe jetzt noch ein DCount eingebaut um die Summe der NN zu ermitteln.
Er kennt die NN Sendungen im Recordset zwar nicht, aber die Summe ermittelt er tadellos!

AnzNN = DCount("[Name1]", "tmp_Tabelle", "[ZahlungsBedingung] LIKE 'NACHN*'")
If AnzNN > 0 Then
MsgBox (AnzNN) & " " & ("NN vorhanden!") & " " & [Name1], vbOKOnly, "INFO"
Else
End If

Aber egal, ist zwar nicht ganz Formschön aber meine ursprüngliche Frage ist auf jeden Fall gelöst, und ich will dich auch
nicht nerven!
Also Frage erledigt und habe 1000 DANK!
Bitte warten ..
Mitglied: tannerli
14.07.2009 um 14:06 Uhr
<quote>
Klar habe ich % anstelle von * verwendet. Die SQL Befehle like habe ich mir auch vorher angesehen....
Keine Angst, ich will mich hier nicht nur "bedienen" lassen, und einen auf Faul machen
</quote>

Ach so, ja dann war das eine Fehlinterpretation meinerseits....

<quote>
ich will dich auch
nicht nerven!
</quote>

Keine Angst, wenn du mich nerven würdest hätte ich von vornherein nicht geantwortet ^^

Schliesslich ist das Forum da zum helfen, ich hab nur dann meine Mühe damit, wenn Leute sich die ganze Arbeit abnehmen lassen ohne zumindest lernwillig zu sein.

Falls dein Problem wirklich gelöst ist könntest du noch "Diesen Beitrag als gelöst markieren" im Forum

So long, and thanks for all the fish
tannerli
Bitte warten ..
Mitglied: tannerli
14.07.2009 um 15:38 Uhr
so und noch als allerletzen beitrag zu dem Thema:

ich hab grad noch mit nem kollegen gesprochen und siehe da: Access handhabt Wildcards anders als MSSQL Server... du muss demnach wirklich

WHERE Zbdg LIKE 'nach*'

nehmen (mit *)

dass sollte dann klappen

Cheers
tannerli
Bitte warten ..
Mitglied: e2Mario
14.07.2009 um 15:48 Uhr
JAAAA
klappt 1A - super, - nun ist es PERFEKT!

Nochmals DANKE für deine Hilfe!

Mario
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
Access Checkbox mit Kombifeld und dann filtern

Frage von atomas42 zum Thema Datenbanken ...

Batch & Shell
CMD cURL Access Token parsen (2)

Frage von maddig zum Thema Batch & Shell ...

Microsoft Office
gelöst Visio 2003 auf aktuellem System (6)

Frage von ratzla zum Thema Microsoft Office ...

LAN, WAN, Wireless
Access Point: Ubiquiti UAP AC PRO Einschätzung Reichweite (4)

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

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...