Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Access 1 Textfeld auf 2 Spalten in einer Tabelle aufteilen, beim speichern

Frage Entwicklung VB for Applications

Mitglied: bumbum

bumbum (Level 1) - Jetzt verbinden

16.09.2009, aktualisiert 14:34 Uhr, 13724 Aufrufe, 5 Kommentare

Hallo Leute,
ich habe das Problem, dass ich Daten in ein Textfeld eingebe und diese Daten sollen beim speichern auf 2 Spalten in einer Tabelle aufgeteilt werden.
Bsp.: "56123-816" ist der Wert den ich eingebe
"56123" soll in die Spalte "LiefNr"
UND "816" soll in die Spalte "ArtNr" gespeichert werden.

Meine Frage:
Ist das von mir beschriebene Beispiel möglich und wenn ja, wie?

Ich Habe es schon mit den Excel-Formeln, LINKS und RECHTS versucht, aber das funktioniert nicht so wie ich das gemacht habe.

LG BUMBUM
Mitglied: Biber
16.09.2009 um 12:31 Uhr
Ja wie jezz', bumbum,

Ich Habe es schon mit den Excel-Formeln, LINKS und RECHTS versucht
ist es denn nun ein Accessformular oder sind wir grad in einem Excel-Sheet?

Und egal was nun für eine Krücke - was genau soll denn nun der Algorithmus sein für die Trennung?
Fest verdrahtet mid( eingabefeld,1, 5) und mid(eingabefeld,6,3) oder ein split() am Trennzeichen "-"?

Grüße
Biber
Bitte warten ..
Mitglied: bumbum
16.09.2009 um 12:50 Uhr
Hallo Biber,
es hat mit der mid() Funktion funktioniert, vielen Dank.

LG BUMBUM
Bitte warten ..
Mitglied: bumbum
22.09.2009 um 11:03 Uhr
Hey Biber,
kannst du mir mal erklären wie das mit der SPLIT()-Funktion in VBA funktioniert, wenn ich in Text1 = 65123-816 eingebe.

Was wird bei der funktion ausgegeben?
Was muss ich eingeben, wenn ich die "816" ausgegeben haben möchte?

LG bumbum
Bitte warten ..
Mitglied: Biber
22.09.2009 um 20:26 Uhr
Moin bumbum,

ich wollte eigentlich erst mit einem freundlichen RTFM antworten, aber die Split()/Join-Funktionen sind zumindest im Access 2000/2003 shice dokumentiert.

Also deshalb erst die lange Ausführung der Antwort:

Lies dir diesen Testschnipsel kurz durch, kopier ihn in den VBA-Editor und steppe ihn dann mit F8 durch.

01.
Sub splitAndJoinTest() 
02.
Dim aStrWithoutDimension() As String 
03.
Dim teststr As String 
04.
Dim i As Integer 
05.
teststr = "65123-816-1711-0911" 
06.
aStrWithoutDimension = Split(Expression:=teststr, delimiter:="-") 
07.
 
08.
Debug.Print "zu zerlegender String 1 " & teststr 
09.
For i = 0 To UBound(aStrWithoutDimension) 
10.
   Debug.Print "aStrWithoutDimension(" & i & ") = " & aStrWithoutDimension(i) 
11.
Next 
12.
 
13.
aStrWithoutDimension = Split(teststr, "-") 
14.
 
15.
Debug.Print "zu zerlegender String 2 " & teststr 
16.
For i = 0 To UBound(aStrWithoutDimension) 
17.
   Debug.Print "aStrWithoutDimension(" & i & ") = " & aStrWithoutDimension(i) 
18.
Next 
19.
 
20.
Debug.Print "Wieder gejoint mit - : " & Join(aStrWithoutDimension, "-") 
21.
Debug.Print "Wieder gejoint mit #  :" & Join(SourceArray:=aStrWithoutDimension, delimiter:="#") 
22.
 
23.
End Sub
Nach dem Ausführen,/ Durchsteppen sollte in Deinem Direktfenster folgende Ausgabe zu sehen sein:
01.
zu zerlegender String 1 65123-816-1711-0911 
02.
aStrWithoutDimension(0) = 65123 
03.
aStrWithoutDimension(1) = 816 
04.
aStrWithoutDimension(2) = 1711 
05.
aStrWithoutDimension(3) = 0911 
06.
zu zerlegender String 2 65123-816-1711-0911 
07.
aStrWithoutDimension(0) = 65123 
08.
aStrWithoutDimension(1) = 816 
09.
aStrWithoutDimension(2) = 1711 
10.
aStrWithoutDimension(3) = 0911 
11.
Wieder gejoint mit - : 65123-816-1711-0911 
12.
Wieder gejoint mit # : 65123#816#1711#0911
Dreimal durchlesen, dann hast Du alles verstanden.

Kurzfassung mit dem Nötigsten:
  • ZielArray := Join("ein-Text-mit-Trennzeichen","-") legt an/befüllt ein eindimensionales Array mit "Komponenten" des gesamten Strings. Wo getrennt wird sagen die Trennzeichen/Delimiter
  • "eindimensionale Arrays" werden von Nicht-Profi-Programmierern (z.b. meine Omma) oft auch einfach als "Listen" bezeichnet, Komponenten als "Token" oder "Elemente"
  • Wichtig ist: das ZielArray darf/sollte keine vorgegebene Länge haben. Meine Omma würde sagen: "Du musst die Liste definieren, darfst aber nicht vorher sagen, wie lang die wird." Das macht nämlich die Join()-Funktion.
  • Gegenstück zur Split()-Funktion ist die Join()-Funktion. "Join()" ist neudeutsch für "Zusammenbrat()".
  • Das Ergebnis von Split("65123-816","-") wären also im ZielArray die Elemente ZielArray(0) und ZielArray(1).
  • und in Zielarray(0) steht "65123", in Zielarray(1) steht "816".

Hoffe, es beantwortet Deine Frage.... im Erklären bin ich nicht so gut.

Grüße
Biber
Bitte warten ..
Mitglied: bumbum
23.09.2009 um 07:23 Uhr
Vielen dank Biber,
das ist doch gut erklär, zumindest denke ich das ich das verstanden habe.

LG bumbum
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Access 2010 Textfeld automatisch aktualisieren (2)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
MS Access - SQL Datenbank - Alle SPalten werden mit GELÖSCHT angezeigt (1)

Frage von harald.schmidt zum Thema Datenbanken ...

Datenbanken
gelöst MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View (3)

Frage von Snuffchen zum Thema Datenbanken ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Infineon TPMs unsicher! Bitlocker ggf. angreifbar

(2)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(4)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(8)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (37)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...