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 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, 13499 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 ...

Microsoft Office
MS Access 2016 Oberfläche nach Win 10 Creators Upgrade zerstört (3)

Frage von 3lingus zum Thema Microsoft Office ...

Microsoft Office
Onenote 2013 keine Berechtigung beim anlegen und speichern (3)

Frage von xbast1x zum Thema Microsoft Office ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (23)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (17)

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

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...