Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung VB for Applications

GELÖST

Access 2003 - Recordset

Mitglied: e2Mario

e2Mario (Level 1) - Jetzt verbinden

14.07.2009, aktualisiert 11:21 Uhr, 6376 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 ..
Ähnliche Inhalte
VB for Applications
Access 2010 vba Recordset
gelöst Frage von EUuserVB for Applications3 Kommentare

Hallo zusammen, ich arbeite seit langem mal wieder mit Access und vba: Ich habe eine Datenbank, zwei Tabellen (identisch ...

VB for Applications
VBA Access: Synchronisation zwischen Recordset und Access Tabelle
Frage von qwertz1VB for Applications2 Kommentare

Hallo, Ich habe in Access ein VBA-Skript programmiert. Das Skript holt sich Daten von einer MySQL Server. Das geht ...

Datenbanken
Access 2010 VBA - mehrspaltiges Listenfeld über Recordset füllen
gelöst Frage von AndyAhDatenbanken2 Kommentare

Hi NG, ich bin's schon wieder ;). Wie kann ich ein Listenfeld mit Recordsets mehrspaltig füllen? Folgenden Code habe ...

Datenbanken
Access 2010 - Listenfeld an ADO-Recordset knüpfen
gelöst Frage von AndyAhDatenbanken9 Kommentare

Hi NG, wie kann ich ein Listenfeld an ein ADO-Recordset knüpfen. Die zugrundeliegende Datenquelle ist keine mit Access verknüpfte ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 17 MinutenRouter & Routing

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 6 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 11 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...