|
|
Поиск русских символов в названиях обьектов (таблиц и полей)
Начертания нескольких символов похоже, а "с"(эс) и "c" (си Eng.) - вообще на одной клавище.
Бывает ...
Лучше проверить быстренько.
Private Sub PrintAllTablesInImmediate()
Dim tdf As DAO.TableDef
Dim objField As DAO.Field
Dim s$, i%
s = "-------------------------------------------" & vbCrLf
For Each tdf In CurrentDb.TableDefs
If (tdf.Attributes And dbSystemObject) = False Then
s = tdf.Name
Debug.Print "= " & s
s = StringToANCIICodes(s)
If s <> "" Then
i = i + 1
Debug.Print "=! " & s
End If
For Each objField In tdf.Fields
s = objField.Name
Debug.Print vbTab & "- " & s
s = StringToANCIICodes(s)
If s <> "" Then
i = i + 1
Debug.Print vbTab & "- " & s
End If
Next
s = "-------------------------------------------"
Debug.Print s
End If
Next
s = "Всего ошибок: " & i
Debug.Print s
If i = 0 Then
MsgBox s, vbInformation
Else
MsgBox s, vbCritical
End If
End Sub
Private Function StringToANCIICodes(vVal As Variant) As String
Dim i As Integer
Dim iAsc As Integer
Dim sMid As String * 1
Dim siLen As Integer
Dim strNew As String
strNew = CStr(vVal)
siLen = Len(strNew)
For i = 1 To siLen
sMid = Mid(strNew, i, 1)
iAsc = Asc(sMid)
If iAsc > 126 Then
StringToANCIICodes = "In string: " & vVal & " InPos: " & i & " = " & sMid & "(" & iAsc & ")"
Exit For
End If
Next i
End Function
|
|