Bedingung in eine While Schleife einbauen

interminator

Grünschnabel
Hallo Leute ich habe eine Schleife die Daten aus einer Access Tabelle ausliest. Sobald die Schleife zu einem leerem Feld gelangt bekomme ich die Fehlermeldung: "Unzulässige verwendung von Null".
Wie kann ich die leeren Felder überspringen um an das wirkliche ende des Tabelle zu gelangen?

Sub mbdausführen()
Filepath = "C:\export.mdb"
path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Filepath

Set oConn = New ADODB.Connection
oConn.Open path

Sql = "Select Telefongeschäftlich from Kontakte"

Set oRs = New ADODB.Recordset
oRs.Open Sql, oConn, 3, 3

While Not oRs.EOF
oRs.MoveNext
MsgBox TelKor(oRs.Fields("Telefongeschäftlich"))
Wend
 
Zuletzt bearbeitet:
Probier mal...
MsgBox ( TelKor(oRs.Fields("Telefongeschäftlich")) & "")

kann aber nicht garantieren das es funktioniert, habs nicht getestet.
 
HI Cthulhu
Die SQL-Abfrage soll von dieser Funktion bearbeitet werden, diese Funktion bringt die Telefonnummern in einer Access Tabelle in das richtige Format.
Die Dbug Funktion ,war leider zu doo!f sie vor der Veröffentlichung zu benutzen, brachte mich in die Zeile 10, dort habe ich dann Len(strRaw2) statt strRaw eingetragen. Jetzt geht es.

1Function TelKor(strRaw)
2Dim strRaw2
3Dim Block(10) 'Blockanzahl mit massig Reserve
4Dim intBloecke 'Zahl der Blöcke
5Dim intLaengeRaw 'Länge des Rohformats
6Dim intPos 'akt Position im String
7Dim strTmpBlock 'Zwischenspeicher f. akt. Block
8Dim strZeichen 'akt Zeichen
9strRaw2 = Trim(strRaw) & ""
10intLaengeRaw = Len(strRaw2)
intBloecke = 1
For intPos = 1 To intLaengeRaw 'Tel-Nr abgrasen
strZeichen = Mid(strRaw2, intPos, 1) 'Zeichen isolieren
If InStr("0123456789-", strZeichen) > 0 Then 'ist Zahl
Block(intBloecke) = Block(intBloecke) & strZeichen 'Zeichen akt. Block hinzufügen
Else 'ist Trennzeichen
If Block(intBloecke) <> "" Then 'akt. Block voll, nächsten Block eröffnen
intBloecke = intBloecke + 1
End If
End If
Next
 
Noch eine Frage.
Hab es jetzt geschafft dass die MsbBox eine OK & Abbrechen Feld hat. Aber wie schaffe ich es aus der Schleife durch das drücken des Knopfes Abbrechen rauszuspringen?

Sub mbdausführen()
Filepath = "C:\export.mdb"
path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Filepath
Set oConn = New ADODB.Connection
oConn.Open path
Sql = "Select Telefongeschäftlich from Kontakte"
Set oRs = New ADODB.Recordset
oRs.Open Sql, oConn, 3, 3
While Not oRs.EOF
MsgBox "Abbrechen oder Durchsuren", vbOKCancel, TelKor(oRs.Fields("Telefongeschäftlich"))
oRs.MoveNext
Wend
End Sub
 
Zuletzt bearbeitet:
Hallo

Jede MsgBox die der du Buttons anhängst gibt einen Wert zurück. Bsp. vbOk, vbCancel, etc. Probier mal den Code

Code:
While Not oRs.EOF AND MsgBox("Abbrechen oder Durchsuren", vbOKCancel, TelKor(oRs.Fields("Telefongeschäftlich")))
<> vbcancel
    oRs.MoveNext
Wend
End Sub

So wird bei jedesmal auch der Status der MsgBox abgefrag.
 
Zuletzt bearbeitet:
ich bin hier gerade nich so drin aber muss da nich n and hin. Sonst sucht der doch weiter obwohl eof erreicht ist und auch, wenn man auf abbrechen clickt.
 
Zurück