Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Auslesen Steuerelement

Begonnen von Problemkind, Januar 06, 2025, 08:43:23

⏪ vorheriges - nächstes ⏩

Problemkind

Hallo und Moin,

ich habe ein Problem mit dem Auslesen eines Steuerlementes:

Vorgegeben:
Tabelle mit ID auf Feld Bestell_Nr (Autowert, Long Integer, Inkrement)
HF mit Feld Bestell_Nr --> Formatierung auf "HL-AL-"0000    (Anzeige auf dem HF als "HL-AL-1214")
Diese Anzeige "HL-AL-1214" möchte ich mit einem Copy-Befehl auslesen um es auf anderen Dokumenten zu verwenden.

Versucht habe ich:

Private Sub Befehl13_Click()
If Not IsNull(Me![Bestell_Nr]) Then
Me![Bestell_Nr].SetFocus
Me![Bestell_Nr].SelStart = 0
Me![Bestell_Nr].SelLength = Len(Me![Bestell_Nr])
DoCmd.RunCommand acCmdCopy
End If
End Sub

Doch leider übernimmt er nur die laufende Nummer, ohne die Formatierung "HL-AL-1214" sondern gibt nur die Zahl 1214 aus. Die Anzeige des Datensatzes im HF verändert sich dann auf die reine ID: 1214. Wenn ich den Datensatz verlasse und wieder zurückkehre steht wieder "HL-AL-1234" im HF.

Wie kann ich den kompletten Inhalt des Steuerelementes übernehmen/auslesen?
Oder gibt es die Möglichkeit dieses mit Hilfe einer Abfrage zu erstellen und dann komplett auszulesen?

Habe schon vieles probiert, schaffe es aber leider nicht und hoffe auf eure Hilfe.... Danke


MzKlMu

#1
Hallo,
Formate werden nicht gespeichert. Dein Vorhaben ist also nicht möglich.
Du kannst immer nur nach der reinen Zahl suchen bzw kopieren.
Du solltest auf diese Formatierung verzichten.
Tabellenfelder werden ohnehin grundsätzlich nicht formatiert.
Wenn diese Formatierung (HL-AL) immer gleich ist, ist diese ohnehin überflüssig. Zur Anzeige (und nur zur Anzeige) setzt man das in einer Abfrage zusammen.

BestellNr: "HL-AL- " & LfdNrGgf. muss die LfdNr noch auf 4 Stellen formatiert werden.
Kopiert wird nur die reine Zahl.
Gruß Klaus

Knobbi38

#2
Was meinst du mit:
Zitat... um es auf in anderen Dokumenten zu verwenden.
?

Für den Fall, daß es darum geht, die ID formatiert in die Zwischenablage zu kopieren:
Private Sub btnCopy_Click()
 Dim objClipBoard As Object
 Dim strText As String
 
 If Len(txtID) > 0 Then
    strText = Format(txtID.Value, txtID.Format)
   
    ' Get a late binding reference for the DataObject
    Set objClipBoard = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
   
    ' Put the text in the clipboard.
    Call objClipBoard.SetText(strText)
    Call objClipBoard.PutInClipboard
   
    ' Cleanup
    Set objClipBoard = Nothing
  End If
End Sub

Knobbi38