Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Löschen von Inhalten mit Zeilenumbruch

Begonnen von hawebe, Juni 01, 2012, 10:15:25

⏪ vorheriges - nächstes ⏩

hawebe

Hallo,

wenn ich Inhalte (mit Zeilenumbruch) eines gebundenen Textfeldes (Datentyp Memo) mit dem Befehl "Me!XX = Null" lösche, und einen weiteren Textbaustein einfüge, wird dieser stets in die 2. Zeile gesetzt.
Die erste Zeile bleibt frei.

Habt Ihr eine Lösung bzw. einen Tip, wie ich erreichen kann, dass nach einem Löschvorgang der nächste Text wieder in der ersten Zeile steht, denn der manuelle Eingriff ist auf Dauer lästig.

Zu meiner Prozedur:

Im Bearbeitungsablauf des frm_A generiere ich Bemerkungen mit Zeilenumbruch. Diese werden in das ungebundene Textfeld (AtxtBtxtCtxt) des frm_Textbausteine geschrieben. Dort werden sie bei Bedarf durch weitere Textbausteine ergänzt.
Bsp.:

    If IsNull(Me!AtxtBtxtCtxt) Then
        Me!AtxtBtxtCtxt = Me!Materialmuster
    Else
        Me!AtxtBtxtCtxt = [AtxtBtxtCtxt] & vbCrLf & [Materialmuster]
    End If

Bei Verlassen des frm_Textbausteine werden die Inhalte (AtxtBtxtCtxt) in das gebundene Textfeld (Memo) in frm_A zurück geschrieben.
Gruß aus dem Emsland

Jonny

Hallo,

ich glaube nicht, dass das Feld ME!XX der Auslöser für dein Problem ist. Null ist halt wirklich leer.

Wie sieht dein Feld AtxtBtxtCtxt inhaltlich wirklich aus.

Setze doch mal Haltepunkte in den Code und lass dir die Inhalte anzeigen.

Gruß

Johann


hawebe

Hallo,
hier die Codes (gesamter Ablauf); hoffentlich blickt Ihr durch.

'[frm_ERSTBESTELLUNG] Textbausteine werden bei Verlassen von gebundenen Textfeldern generiert.

    If Not IsNull(Me!AngebBemerkung) Then 'gebundenes Textfeld (Format Memo) Quelle: tblBEARBDAT
      Me!AngebBemerkung = [AngebBemerkung] & vbCrLf & "Wegen der Überarbeitung Ihrer Druckvorlage fallen Grafikkosten an; diese betragen " & FormatCurrency(CDbl(Me![KoGrafik])) & "."
    Else
        Me!AngebBemerkung = "Wegen der Überarbeitung Ihrer Druckvorlage fallen Grafikkosten an; diese betragen " & FormatCurrency(CDbl(Me![KoGrafik])) & "."
    End If

    If Not IsNull(Me!AngebBemerkung) Then
        Me!AngebBemerkung = [AngebBemerkung] & vbCrLf & "Es fallen anteilige Werkzeugkosten (" & [kWerkzeug] & ")  an; diese betragen " & FormatCurrency(CDbl(Me![WzKost])) & "."
    Else
        Me!AngebBemerkung = "Es fallen anteilige Werkzeugkosten (" & [kWerkzeug] & ")  an; diese betragen " & FormatCurrency(CDbl(Me![WzKost])) & "."
    End If

'Bei Wechsel zu [frm_Textbausteine]

    Forms!frm_TextbausteineERST.Form!AtxtBtxtCtxt = Forms!frm_ERSTBESTELLUNG!AngebBemerkung

'[frm_Textbausteine] Textbausteine werden einer Tabelle entnommen und mit Click hinzugefügt

    If IsNull(Me!AtxtBtxtCtxt) Then ' ungebundenes Textfeld
        Me!AtxtBtxtCtxt = Me!GrafikEignung
    Else
        Me!AtxtBtxtCtxt = [AtxtBtxtCtxt] & vbCrLf & [GrafikEignung]
    End If

    If IsNull(Me!AtxtBtxtCtxt) Then
        Me!AtxtBtxtCtxt = Me!Materialmuster
    Else
        Me!AtxtBtxtCtxt = [AtxtBtxtCtxt] & vbCrLf & [Materialmuster]
    End If

'Bei "Rück-"Wechsel zu [frm_Erstbestellung]

    Forms!frm_ERSTBESTELLUNG!AngebBemerkung = Me!AtxtBtxtCtxt

'bis hierher ist alles ok, die Darstellung in Forms und Reports ist so wie gewollt.

'Das Löschen erfolgt im [frm_Überarbeitung]. Quelle für das Feld [AngebBemerkung] ist die tblBEARBDAT. Dieses Form enthält die selbe Prozedur wie [frm_Erstbestellung].


Private Sub aAuflC_Exit(Cancel As Integer)
    On Error Resume Next
    Dim cKriterien As String
    Dim sMldg As String
    Dim sTitel As String
    Dim iRes As Integer
    Dim erg As Integer

    sTitel = "Eingabeprüfung Auflagen"
    sMldg = "Bestellte Auflage:            " & Format(Me!BESTELLTEAUFLAGE, "0,000") & "" & vbCrLf & "" & vbCrLf & "Alternative Auflage 1:     " & Format(Me!aAuflA, "0,000") & ""
    iRes = MsgBox(sMldg, vbYesNo + vbQuestion + vbDefaultButton1, sTitel)
    erg = iRes

    If erg = vbNo Then
        Me!BESTELLTEAUFLAGE.SetFocus
        Exit Sub
    Else

        If IsNull(Me!aAuflA) Then
            If Not (Me!cFarbe1) Like "*Standard*" Then
           
                sTitel = "Verkürztes Verfahren"
                sMldg = "" & vbCrLf & "Kann die weitere Aufmachung unverändert" & vbCrLf & "übernommen werden?" & vbCrLf & "
                iRes = MsgBox(sMldg, vbYesNo + vbQuestion + vbDefaultButton1, sTitel)
                erg = iRes

                If erg = vbYes Then
       
                    Me!HilfTextbau = "Ja" ' Unterdrückt setzen von Standardtexten, vermeiden von Doppel
                    Me!A_Aufl = Me!BESTELLTEAUFLAGE
                    Me!FarbMischA = Me!cFarbe1.Column(1)
                    Me!FarbMischB = Me!cFarbe2.Column(1)
                   
                    Me!SoKosten.Enabled = True
                    Me!SoKosten.SetFocus
                Else
               
                    Me!AngebBemerkung = Null 'hierdurch wird das Feld zwar komplett gelöscht, aber ein nachfolgender Textbaustein wird in die 2. Zeile gesetzt.
                    Me!AuftrBemerkung = Null
                    Me!ZahlText = 0
                   
                    Me!DruFarb.Enabled = True
                    Me!DruFarb.SetFocus
                End If
            End If
        End If
 
End Sub



Gruß aus dem Emsland

DF6GL

Hallo,


ich kann jetzt nur vermuten, dass IsNull nicht greift. Schreib mal so:

    If nz(Me!AtxtBtxtCtxt,"") ="" Then ' ungebundenes Textfeld
        Me!AtxtBtxtCtxt = Me!GrafikEignung
    Else
        Me!AtxtBtxtCtxt = Me![AtxtBtxtCtxt] & vbCrLf & Me![GrafikEignung]   ' ME nicht vergessen!
    End If

    If nz(Me!AtxtBtxtCtxt,"") = "" Then
        Me!AtxtBtxtCtxt = Me!Materialmuster
    Else
        Me!AtxtBtxtCtxt = Me![AtxtBtxtCtxt] & vbCrLf & Me![Materialmuster]  ' ME nicht vergessen!

    End If


hawebe

Hallo Franz,

es hat alles etwas gedauert, weil es auf Anhieb auch mit nz nicht klappte. Ich musste zunächst mal den Fehler neu eingrenzen und mir jede Codezeile in meinen Formularen noch einmal ansehen, vor allem weil Du mit Deinen Hilfen bisher immer richtig gelegen hast und ich davon ausgehen musste, dass es meinerseits noch Unsauberkeiten gab.

Danach griff auch nz und die Leerzeile verschwand.

Übrigens trat das  Problem bis dahin nur im frm_Überarbeitung auf.

- Beim Öffnen wurden die Textbausteine korrekt (ohne Leerzeile) angezeigt.
- Der Text im gebundenen Textfeld [AngebBemerkung] wurde mit: Me!AngebBemerkung = Null gelöscht.
- Beim generieren eines neuen Textbausteines wurde dieser dann in die zweite Zeile des Textfeldes geschrieben.

Aber das ist nun durch Deine Hilfe Vergangenheit.

Also herzlichen Dank.
Gruß aus dem Emsland