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
GELÖST

VBA zugreifen auf eine Tabelle, den höchsten Wert aus einer Spalte vergleichen mit einem Textfeld im Formular

Frage Entwicklung VB for Applications

Mitglied: bumbum

bumbum (Level 1) - Jetzt verbinden

27.08.2009, aktualisiert 22.09.2009, 10512 Aufrufe, 8 Kommentare

Hallo Leute,

Ich habe in Access eine Datenbank erstellt, in der Neukunden erfasst werden sollen.
Wie vergleiche ich ein Textfeld (Text1) aus einem Formular mit einer Spalte (KdNr) aus der Tabelle (tbl_Kunden)?
Wie kann ich die letzte Kundennummer die in der Tabelle vergeben wurde anwählen und + 1 rechen lassen?


Hier der momentane Code:
01.
Private Sub Befehl24_Click() 
02.
DoCmd.SetWarnings False 
03.
If Text1.Value = **SPALTE AUS TABELLE** Then 
04.
    Frage = MsgBox("Die Kundennummer " & Text1.Value & " ist schon vergeben, bitte verwenden sie die Kundennummer " & **LETZTE KUNDENNUMMER + 1** , vbOKOnly, "Fehler") 
05.
Else 
06.
    DoCmd.RunSQL ("insert into tbl_Kunden (KdNr, Anrede, Name, Vorname, Straße, PLZ, Ort, Telefon, Fax, Handy, EMail) values (Text1.value, Text2.value, Text3.value, Text4.value, Text5.value, Text6.value, Text7.value, Text8.value, Text9.value, Text10.value, Text11.value)") 
07.
End If 
08.
End Sub
LG BumBum



[Edit Biber] Code-Tags nachgetragen. [/Edit]
Mitglied: AndreasHoster
27.08.2009 um 11:03 Uhr
Indem man eine SQL Abfrage macht?
01.
Dim rs As Recordset 
02.
Dim i As Integer 
03.
 
04.
Set rs = Application.CurrentDb.OpenRecordset("Select max(KdNr) as Max from tbl_kunden") 
05.
rs.MoveFirst 
06.
i = rs!Max + 1
BTW:
Warnings auschalten, dann ein Insert machen ohne zu Prüfen ob der geklappt hat, ist kein guter Programmierstil.
Bitte warten ..
Mitglied: bumbum
27.08.2009 um 11:50 Uhr
Hallo Andreas,
wenn du mir jetzt noch sagen könntest wie ich das in meinen Code einbauen kann, wäre ich dir sehr dankbar.
der "insert" hat funktioniert, das habe ich schon getestet, außer dem habe ich mir das bloß abgeschaut bei na anderen Datenbank.

LG bumbum
Bitte warten ..
Mitglied: AndreasHoster
27.08.2009 um 12:17 Uhr
Die 6 Zeilen sollten sich doch auch so noch in den Code integrieren lassen.
Aber ich bin heute guter Laune:
01.
Private Sub Befehl24_Click() 
02.
Dim rs As Recordset 
03.
Dim i As Integer 
04.
DoCmd.SetWarnings False 
05.
Set rs = Application.CurrentDb.OpenRecordset("Select max(KdNr) as Max from tbl_kunden") 
06.
rs.MoveFirst 
07.
i = rs!Max 
08.
rs.close 
09.
If Text1.Value = i Then 
10.
    Frage = MsgBox("Die Kundennummer " & Text1.Value & " ist schon vergeben, bitte verwenden sie die Kundennummer " & cstr(i) , vbOKOnly, "Fehler") 
11.
Else 
12.
    DoCmd.RunSQL ("insert into tbl_Kunden (KdNr, Anrede, Name, Vorname, Straße, PLZ, Ort, Telefon, Fax, Handy, EMail) values (Text1.value, Text2.value, Text3.value, Text4.value, Text5.value, Text6.value, Text7.value, Text8.value, Text9.value, Text10.value, Text11.value)") 
13.
End If 
14.
End Sub
Bitte warten ..
Mitglied: bumbum
27.08.2009 um 12:53 Uhr
Vielen dank, aber in der MsgBox ist immer noch ein Fehler.
Wo du jetzt "cstr(i)" eingesetzt hast soll die nächst höhere freie KdNr ausgegeben werde, das ist hier nicht der fall.
Bitte warten ..
Mitglied: AndreasHoster
27.08.2009 um 15:35 Uhr
Ist richtig, das + 1 beim i ist rausgefallen.
In Theorie programmieren ist halt fehleranfällig.
Bitte warten ..
Mitglied: bumbum
08.09.2009 um 12:30 Uhr
Danke, aber es ist immer noch ein Fehler da!

Bsp.: die KdNr´s 1-10 sind vergeben, wenn ich nun die KdNr 5 rein schreibe, erhalte ich keine Meldung von der MsgBox, nur wenn ich die 10 rein schreibe kommt eine Meldung in der dann gesagt wird, das die KdNr 10 schon vergeben ist und ich die 11 nehmen soll.
Weiß jemand was der Fehler ist?
LG Bumbum
Bitte warten ..
Mitglied: AndreasHoster
08.09.2009 um 13:53 Uhr
Natürlich prüft
01.
If Text1.Value = i Then 
nur auf Gleichheit, nicht ob die Zahl eventuell kleiner ist. Was in der Beschreibung auch nicht zu entnehmen war, daß auch das passieren soll.
In dem Fall auf kleiner gleich prüfen. Oder sich die Frage stellen, warum man nicht automatisch eine 1 höhere Kundennummer nimmt, was wiederum auf den Begriff Autowert führt, den man in der Access Hilfe mal nachschlagen könnte.
Bitte warten ..
Mitglied: bumbum
08.09.2009 um 14:15 Uhr
Das man das mit einem Autowert machen kann ist mir klar, doch ich weiß auch nicht wie man dem Text1 sag, das es automatisch eine 1 höhere Kundennummer nehmen soll.
sorry wegen der fragen aber als Anfänger weiß man es nicht besser und Probiert es sich aus bis man warnsinnig wir und jemanden fragt.

LG bumbum
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Werte in Spalten vergleichen und einsetzen
gelöst Frage von Inge88Microsoft Office4 Kommentare

Halihalo, ich bin neu hier und versuche eine Lösung zu finden, bzw. kompetente Excel-Kenner: Ich habe mehrere Spalten (A, ...

Datenbanken
Höchsten Wert aus nvarchar Spalte finden
gelöst Frage von orausdoDatenbanken11 Kommentare

Hallo liebe Admins, ich habe folgende Problem. Ich habe eine Tabelle, in der Werte für die Kalenderwoche weggeschrieben werden. ...

VB for Applications
Den Wert eines Speichers mit einer Spalte einer anderen Excelmappe vergleichen
gelöst Frage von Tobias1900VB for Applications6 Kommentare

Hallo! Folgendes Problem: Betätige ich in meinem Visualisierungsprogramm (iFix), welches mit VBA programmiert ist, einen Button, wird eine TCP/IP-Socket ...

VB for Applications
Excel VBA gefilterte Spalten vergleichen
gelöst Frage von YotYotVB for Applications3 Kommentare

Aloha! Ich bin seit satten fünf Stunden auf der Suche nach einer funktionierenden Lösung und scheitere daran, dass ich ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...