Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Problemkind am Januar 06, 2025, 08:43:23

Titel: Auslesen Steuerelement
Beitrag von: Problemkind am Januar 06, 2025, 08:43:23
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

Titel: Re: Auslesen Steuerelement
Beitrag von: MzKlMu am Januar 06, 2025, 09:45:29
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.
Titel: Re: Auslesen Steuerelement
Beitrag von: Knobbi38 am Januar 06, 2025, 10:12:22
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