Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: 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


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.