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

 

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

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

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

ник: akkorn
Не знаю, корректна ли моя точка зрения. Но раз известно конечное кол-во полей, тогда форировать две переменные непосредственно перед добавлением строки.
Первая переменная- куда, вторая- что.

function getstringadd() as string
dim into as string, val as string, separate as string, i as string

i = trim(me.полесосписком1)
if i <> "" then
into = into & separate & "[поле1]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком2)
if i <> "" then
into = into & separate & "[поле2]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком3)
if i <> "" then
into = into & separate & "[поле3]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком4)
if i <> "" then
into = into & separate & "[поле4]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком5)
if i <> "" then
into = into & separate & "[поле5]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком6)
if i <> "" then
into = into & separate & "[поле6]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком7)
if i <> "" then
into = into & separate & "[поле7]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком8)
if i <> "" then
into = into & separate & "[поле8]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком9)
if i <> "" then
into = into & separate & "[поле9]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

i = trim(me.полесосписком10)
if i <> "" then
into = into & separate & "[поле10]"
val = val & separate & chr(34) & i & chr(34)
separate = ", "
end if

if separate <> "" then
getstringadd = "insert into [табла 2] (" & into & ") valuse (" & val & ");"
end if
end function



По идее можно организовать это все в цикле, но подразумеваю, что поля в БД не обязательно отличаются тока циферками (это здесь, в примере, они значатся как Поле1, Поле2... В БД могут быть совсем другие имена). Соответственно наиболее наглядно (шопп не путать себя самого) именно так, хоть и длиньше получается.

Ну и вынести это все в ф-цию. Ф-ция возвратит строку. Если не пустая, тадысь так:
dim i as string
i=getstringadd
if i <>"" then
CurrentDb.Execute i
else
.....
end if


Ваше имя:

Пароль:

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

Сообщение:

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

Прикрепить:

 

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