Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Автозамена символов
 
 автор: debilder   (12.04.2007 в 12:57)   личное сообщение
 
 

Я в таблице в каждом поле делаю автозамену некоторых символов. Как мне учесть в моём случае, то что в таблице может быть несколько записей. т.е. делать автозамену в одной строке а потом перейти в другую? Заранее благодарен.

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

  Ответить  
 
 автор: osmor   (12.04.2007 в 16:24)   личное сообщение
 
 

я ничего не понял
конструкция

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


Проверить естественно не могу, могут быть опечатки

  Ответить  
 
 автор: debilder   (12.04.2007 в 17:53)   личное сообщение
 
 

Этот модуль обновляет все строки в этой таблице и они становяться одинаковые. Мне же нужно чтобы поля обновлялись по каждой строке отдельно. Снасчала обновилась первая строка, потом вторая и т.д.

  Ответить  
 
 автор: osmor   (12.04.2007 в 20:02)   личное сообщение
 
 

этот модуль заменяет все символы "_" и "?" на "!" во всех полях таблицы, но не делает их одинаковыми...
Если только я гдето на напорол

  Ответить  
 
 автор: debilder   (13.04.2007 в 11:06)   личное сообщение
 
 

Большое спасибо!!! Извените, не в ту таблицу заглянул. Всё сработало.

  Ответить  
 
 автор: Oldman   (24.04.2007 в 09:01)   личное сообщение
 
 

>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
...
и далее по тексту

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList