Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Счётчик


Автор: Catisha 16.10.2006, 10:51
В таблице Access есть поля: Фамилия Имя Отчество. В четвёртое поле надо записать ФИО. Если записи повторяются, то добавлять число:
Иванов Пётр Иванович
Иванов Пётр Иванович1
Иванов Пётр Иванович2
итд.

Автор: Flotskiy 16.10.2006, 11:39
Catisha,  при помощи чего в БД вносятся записи? Более конкретно, pse.

Автор: Тутанхамец 16.10.2006, 13:09
Код



i=1
s="Вася Рогов"
s2=s
do
if i<>1 then s2=s+cstr(i)
bExist=... 'ищешь запросом, фильтром или перебором запись, где ФИО=s. 
i=i+1
loop while bExist

Басика под рукой нет, но поиск записи можно примерно так:

Код

cnt=v.execute("SELECT COUNT(FIO) FROM TABLE1 WHERE FIO='"+cstr(s)+"'")
bExist=cbool(cnt<>0)

Автор: Catisha 17.10.2006, 08:35
Данные импортируются из других таблиц и автоматически(с помощью выполнения запроса) генерируется ФИО
Код

UPDATE Users SET Users.[Display Name] = DN(Users!Surname,Users!Name);


[code=vb]
Function DN(Surname As String, Name As String)

Dim dbs As Database, ret, ret1, ret2 As Long
Dim criteria, LastNum As String
 
  Set dbs = CurrentDb
  criteria = "[Display Name] like" + "'*" + Surname + "*'" + "'*" + Name + "*'"
  LastNum = Nz(DMax("[Display Name]", "users", criteria), "")
  ret1 = Val(Mid(LastNum, 9, 1)) ' Last numeration
  criteria = "[Display Name] like" + "'*" + Surname + "*'" + "'*" + Name + "*'"
  ret2 = DCount("[Display Name]", "Users", criteria) 'Total number of those models
  ret = IIf(ret1 > ret2, ret1, ret2)
' Setup a number as next
 
  DN = Surname + Name + Format(ret + 1, "0")

End Function[code=vb]

Функция DN работает неправильно(не так как хочется).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)