ник: ILGAS
Всем большое и огромное спасибо что не бросили человека с больной головой и помогли, особенно Анатолию (киев). Возможно, код и не идеал есть множество пробелов в нем но в связи с тем что базы была еще не очень большая около 3000 записей конвертация произошла почти автоматически процентов на 90 потом пришлось конечно ручками подчистить базу от ляпов например как "Справка от нотариуса № 300 от 10.10.2003 г." программа посчитала что первая идет дата "нотариуса" а потом № "300 от 10.10.2003 г." но конечно таких записей было не очень много
Вот код если кому нужен.
Dim rst As DAO.Recordset
Dim rst1 As DAO.Recordset
Dim pm, l As Long
Dim ot, nn As Integer
Dim zn1, zn2, zn3, zn0 As Variant
Dim v As Variant, i As Long
Set rst = CurrentDb.OpenRecordset("SELECT Базаданых.* FROM Базаданых WHERE (((Базаданых.влд1) Is Not Null))")
Set rst1 = CurrentDb.OpenRecordset("SELECT * FROM [Вложенные документы]")
If Not rst.EOF Then
rst.MoveLast
pm = rst.RecordCount
End If
rst.MoveFirst
For l = 1 To pm
With rst
v = ![влд1]
zn0 = ![сч]
v = Split(v, vbCrLf)
For i = 0 To UBound(v)
nn = InStr(1, v(i), "№")
ot = InStr(1, v(i), "от")
If nn <> 0 And ot <> 0 Then
zn1 = Left(v(i), nn - 1)
zn2 = Mid(v(i), nn + 1, ot - nn - 1)
zn3 = Mid(v(i), ot + 2)
ElseIf nn = 0 And ot <> 0 Then
zn1 = Left(v(i), ot - 1)
zn2 = Null
zn3 = Mid(v(i), ot + 2)
ElseIf nn <> 0 And ot = 0 Then
zn1 = Left(v(i), nn - 1)
zn2 = Mid(v(i), nn + 1)
zn3 = Null
ElseIf nn = 0 And ot = 0 Then
zn1 = v(i)
zn2 = Null
zn3 = Null
End If
With rst1
.AddNew
.Fields!кодБД = zn0
.Fields!ВлДок = zn1
.Fields!номер = zn2
.Fields!дата = zn3
.Fields!коллистов = 1
.Update
End With
Next
.MoveNext
End With
Next l