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, 13641 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
gelöst MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View (3)

Frage von Snuffchen zum Thema Datenbanken ...

VB for Applications
Mehrere Spalten Durchsuchen und Ergebnisse in neuer Tabelle Ausgeben (3)

Frage von Mr.Green zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (33)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...