powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Определить текст как имя переменной.
9 сообщений из 9, страница 1 из 1
Определить текст как имя переменной.
    #39688280
vasiaman86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Вопрос такой. Имеется рэкордсет, rst.Fields(1) имена переменных rst.Fields(2) значения которые нужно присвоить. Как это сделать?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    sSQL = "SELECT d_num.fldid, Max(ls.variable), Sum(d_num.value) " _
    & "FROM d_num LEFT JOIN ls ON d_num.fldid = ls.fldid " _
    & "WHERE d_num.abonentid =" & ab _
    & " AND Year(d_num.period)=" & Year(data) & " AND Month(d_num.period)=" & Month(data) _
    & " AND ls.variable Is Not Null " _
    & "GROUP BY d_num.fldid"
    Set rst = CurrentDb.OpenRecordset(sSQL)
    rst.MoveFirst
    Do While Not rst.EOF
        rst.Fields(1) = rst.Fields(2)

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688291
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rst.MoveFirst
Do While Not rst.EOF
rst.Edit
rst.Fields(1) = rst.Fields(2)
rst.Update
rst.movenext
loop
Это если надо присвоить значение одного поля другому.
Но вот кажется мне, что вам в целом надо что-то другое....
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688462
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasiaman86Здравствуйте! Вопрос такой. Имеется рэкордсет, rst.Fields(1) имена переменных rst.Fields(2) значения которые нужно присвоить. Как это сделать?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    sSQL = "SELECT d_num.fldid, Max(ls.variable), Sum(d_num.value) " _
    & "FROM d_num LEFT JOIN ls ON d_num.fldid = ls.fldid " _
    & "WHERE d_num.abonentid =" & ab _
    & " AND Year(d_num.period)=" & Year(data) & " AND Month(d_num.period)=" & Month(data) _
    & " AND ls.variable Is Not Null " _
    & "GROUP BY d_num.fldid"
    Set rst = CurrentDb.OpenRecordset(sSQL)
    rst.MoveFirst
    Do While Not rst.EOF
        rst.Fields(1) = rst.Fields(2)

Модератор: Учимся использовать тэги оформления кода - FAQ

Evaluate ?
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688554
vasiaman86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot, Пишу на access 2003.
Попытаюсь более подробно обяснить ситуацию. Имеется 15 глобальных переменных их имена в rst.Fields(1) а значения в rst.Fields(2). Необходимо определить rst.Fields(1) как часть кода.
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688570
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasiaman86Имеется 15 глобальных переменных их имена в rst.Fields(1) а значения в rst.Fields(2). Необходимо определить rst.Fields(1) как часть кода.
Переменные УЖЕ имеются? или нужно их определить, а не только присвоить им значения?
Если первое - то не вопрос... переменные в коде определены, имена известны, и осталось сляпать конструкцию типа
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Select Case rst.Fields(1)
Case "global1"
    global1 = rst.Fields(2)
Case "global2"
    global2 = rst.Fields(2)
' ...
Case "globalN"
    globalN = rst.Fields(2)
End Select

А вот если надо ещё их и определить - увы, задача нерешаема.
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688582
vasiaman86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, Кажется то что нужно буду тестировать. Благодарю!!!
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688597
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasiaman86 , если Вы используете подобный подход, помыслите не о глобальных переменных. а о глобальной коллекции переменных, где ключ - имя, а значение - собственно значение. Тогда вместо переменной будете использовать выборку из коллекции, а присвоение из рекордсета по ключу. Типа:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public globals As Collection

Sub Init
  ' ...
  With rst
    .MoveFirst
    Do Until .EOF
      globals.Add rst.Fields(2), rst.Fields(1)
      .MoveNext
    Loop
  End With
  ' ...
End Sub

' где-то в коде
' вместо 
globalVar = "что-то"
' используем 
globals("globalVar")  = "что-то"
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688604
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
...
      globals.Add rst.Fields(2), rst.Fields(1)


Здесь он добавит в коллекцию ссылку на DAO.Field, а не его значение.
Не?
...
Рейтинг: 0 / 0
Определить текст как имя переменной.
    #39688638
vasiaman86
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
глобальные коллекции переменных для меня пока рановато, а case отлично работает. Хотя с глобальными переменными не все просто они обнуляются после ошибки если процедура без обработчика ошибок. печалька
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Определить текст как имя переменной.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]