|
|
|
| Я в таблице в каждом поле делаю автозамену некоторых символов. Как мне учесть в моём случае, то что в таблице может быть несколько записей. т.е. делать автозамену в одной строке а потом перейти в другую? Заранее благодарен.
Set rs = CurrentDb.OpenRecordset("select * from 1;")
If rs.RecordCount = 0 Then GoTo EX3
rs.MoveLast
rs.MoveFirst
For j = 0 To rs.RecordCount - 1
For i = 0 To rs.Fields.Count - 1
If IsNull(rs.Fields(i)) = True Then
Else
nh = rs.Fields(i).NAME
fd = Replace97(rs.Fields(i), "_", "i")
ss = "UPDATE 1 SET 1." & nh & "=" & "'" & fd & "'" & ";"
CurrentDb.Execute ss
fd = Replace97(rs.Fields(i), "?", "i")
ss = "UPDATE 1 SET1." & nh & "=" & "'" & fd & "'" & ";"
CurrentDb.Execute ss
End If
Next i
rs.MoveNext
Next j
EX3:
rs.Close | |
|
| |
|
|
|
| я ничего не понял
конструкция
UPDATE 1 SET 1." & nh & "=" & "'" & fd & "'" & ";"
|
при выполнении заменит значение поля nh на fd во всех записях таблицы 1....
т.е. во всех записях таблицы в этом поле будет ОДИНАКОВОЕ ЗНАЧЕНИЕ
ну в общем, если я правильно понял задачу, то должно быть что-то такое:
dim fld as dao.field
dim rs as dao.recordset
dim sql as string
dim i as integer
dim rpls(1,1) as string ' массив для пар замены
rpls(0,0) = "_" '- что заменяем
rpls(1,0) = "i" '- НА что заменяем
rpls(0,1) = "?" '- что заменяем
rpls(1,1) = "i" '- НА что заменяем
Set rs = CurrentDb.OpenRecordset("select * from 1")
For each fld to rs.Fields
for i = 0 to UBound(rpls, 2)
currentdb.execute "UPDATE 1 SET " & fld.name & " = replace97([" & fld.name & "],'" & rfd(0,i) & "','" & rfd(1,i) & "');"
next i
next
rs.Close
|
Проверить естественно не могу, могут быть опечатки | |
|
| |
|
|
|
| Этот модуль обновляет все строки в этой таблице и они становяться одинаковые. Мне же нужно чтобы поля обновлялись по каждой строке отдельно. Снасчала обновилась первая строка, потом вторая и т.д. | |
|
| |
|
|
|
| этот модуль заменяет все символы "_" и "?" на "!" во всех полях таблицы, но не делает их одинаковыми...
Если только я гдето на напорол | |
|
| |
|
|
|
| Большое спасибо!!! Извените, не в ту таблицу заглянул. Всё сработало. | |
|
| |
|
|
|
| >If IsNull(rs.Fields(i)) = True Then
>
>Else
>nh = rs.Fields(i).NAME
Я бы упрости данную запись, сделал бы ее более логичной и правильной :)
If not IsNull(rs.Fields(i)) Then
nh = rs.Fields(i).NAME
...
и далее по тексту
| |
|
| |