powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / VBA Access 2016 использование текстовых значений
25 сообщений из 61, страница 1 из 3
VBA Access 2016 использование текстовых значений
    #39990605
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

Используется макрос в VBA Access с таким "кусочком":
const log = "123456"
const pas = "654321"
Эти log и pas используются дальше по коду (сам код рабочий).

Возможно ли прописать так, чтобы эти значения log и pas вводить в текстовые поля на форме в access, или чтобы код эти значения брал из таблицы, расположенной в той же базе access?

Извиняюсь за корявость языка, я в этом деле не профи, мягко говоря, пытаюсь что-то как-то слепить из того, что было))

Заранее спасибо за помощь))

P.S. Если прям кусок кода напишете, как это должно выглядеть, преогромнейшая благодарность!)))
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990627
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эти значения раньше были постоянны, поэтому они были написаны напрямую в коде, для удобства. А теперь появилась необходимость эти значения изменять, не меняя кода.
Надо, чтобы эти значения можно было ввести на форме или в таблице, а уж код потом мог использовать введённые значения.

Доформулировал (((
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990646
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker,

тут макросы не любят и не используют, переходите на VBA...
const это константы, используйте переменные, тогда переменной можно присвоить значение поля формы
или таблицы в любом месте программы и не один раз...
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990649
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
' объявите эти переменные в шапке любого модуля - старые const нужно заремить
public log as String, pass as string
'создайте функцию и засуньте в макрос autoexec - если нужно определять эти данные вначале.
Public function MakeConst()
dim prov
prov=dlookup("[field1]","tblName","[id]=1") ' field1 - поле в котором записаны значения, tblName - наименование таблицы, id=1 - ключ к этим данным 
log=nz(prov,vbnullstring)
prov=dlookup("[field1]","tblName","[id]=2")
pass=nz(prov,vbnullstring)
end function


...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990651
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker

..Эти log и pas используются дальше по коду (сам код рабочий)...
Если б код глянуть....(макрос легко преобразуется в код VBA-не знаю про 2016 а в 2007-выделить его в области переходов>работа с базами данных>макрос>преобразовать макросы
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990664
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
тут макросы не любят и не используют, переходите на VBA...
для тех кто не читает (сам иногда тоже грешен)
greker
Используется макрос в VBA Access с таким "кусочком":
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990666
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
Возможно ли прописать так, чтобы эти значения log и pas вводить в текстовые поля на форме в access, или чтобы код эти значения брал из таблицы, расположенной в той же базе access?
возможно. Но для этого, что бы ответ был наиболее адекватен требуется увидеть как используется функция/процедура. Возможно проще будет передавать как аргументы эти значения.

https://www.cyberforum.ru/ms-access/thread2690629.html#post14788247 База данных на работе, доступа в интернет нема(

Если приведёте пример, как написать, будет просто великолепно!))Видимо носители информации тоже запрещены? По последнему пожеланию аналогично.
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990676
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
Видимо носители информации тоже запрещены?
если доступа в инет нема - то и носителей тоже нема...
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990684
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Панург
Видимо носители информации тоже запрещены?
если доступа в инет нема - то и носителей тоже нема...
это отчего же? Вполне возможны ситуации когда не всем даётся интернет, или тьма тараканья, где сложно организовать канал для всех. В конце концов есть смартфон с фотоаппаратом.
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990687
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
В конце концов есть смартфон с фотоаппаратом.
ну это уже не выложишь в инет

Панург
Вполне возможны ситуации когда не всем даётся интернет
и не все внешние носители можно подключать, а то и вообще выкушены гнёзда.
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990688
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
ну это уже не выложишь в инет
это ещё почему? Даже тут встречается сплошь и рядом.
вадя
вообще выкушены гнёзда.
имхо, извращение, всё отключается программно. Речь вообще не про то...
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990698
greker,
1. Создаете в своей форме новое поле.
2. В модуле заремливаете свое объявление констант. Делате объявление своих переменных с тем же типом и именем.
3. Присваиваете в модуле этим переменным значение поля. Ниже пример, как у меня дата в нужном формате присваивается.
Код: vbnet
1.
   ДатаДляМодуля = Format([ИмяПоля], "yyyy-mm-dd hh:mm:ss") 
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990734
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил Михайлович Л

ДатаДляМодуля = Format([ИмяПоля], "yyyy-mm-dd hh:mm:ss")
[/src]
Не уверен что это всегда,на любом РС, будет работать, а так всегда и везде:
Код: vbnet
1.
"датаДляМодуля=#" & Format(ctl,"mm\/dd\/yyyy hh\:mm\:ss") & "#"
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990736
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Встречается, интернета нема, usb закрыты)

Михаил Михайлович, я в vba ни в зуб ногой к огромному сожалению ((. Окно на форме для ввода log и pas я могу сделать, а как это в коде прописать, чтобы нужные значения брались из этих полей?
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990741
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
Встречается, интернета нема, usb закрыты)

Не запирайте, люди, — плачут дома детки,
Ему же — в Химки, а мне — в Медведки!..
Да, всё равно: автобусы не ходят,
Метро закрыто, в такси не содят.
(c)


greker
я в vba ни в зуб ногой к огромному сожалению

А разработчик?

Перефотографируй, потом тщательно с фото перепечатай сюда (не забудь тэги оформления кода). И так весь код. А мы чегонить посоветуем.

Например вынести константы в аргументы и присвоить им значения по умолчанию. Откуда запускается этот код (кстати, а что это функция или процедура, как запускается)
присваивать значения... или не присваивать.
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990768
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Разработчик вне доступа, а менять надо((
Фотографировать и выкладывать весь код смысл?
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990779
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Как раз и надо уйти от констант, чтобы эти значения можно было вводить новые, не изменяя код
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990804
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
... Окно на форме для ввода log и pas я могу сделать, а как это в коде прописать...
sdku

Если б код глянуть...
Ну и как можно править(что-то подсказать) код не видя его??
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990806
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

А смысл выкладывать весь код, вопрос только в том, как заменить эти константы?
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990825
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
А смысл выкладывать весь код, вопрос только в том, как заменить эти константы?

Вам же уже ответили , вместо константы обьявляете переменную , а затем ей присваиваете значение .
Где и как присваивать это уже Ваше личное дело. В частности Вам советовали присваивать значения полей формы.
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990874
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см. Form1 (это один,далеко не единственный, вариант)
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990897
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
Как раз и надо уйти от констант, чтобы эти значения можно было вводить новые, не изменяя код
Видно с трудом соображаешь.

Панург
Например вынести константы в аргументы и присвоить им значения по умолчанию. Откуда запускается этот код (кстати, а что это функция или процедура, как запускается )
присваивать значения... или не присваивать.
Ты на вопросы ответить можешь?

А заменить можно так
Код: vbnet
1.
2.
Public Sub SomeProc(Optional log as string = "123456", Optional pas as string = "654321")
end Sub

Вызов процедуры
Код: vbnet
1.
Call SomeProc'работают значения констант


Код: vbnet
1.
Call SomeProc(nz(dlookup("[field1]","tblName","[id]=1"),vbnullstring), nz( dlookup("[field1]","tblName","[id]=2"),vbnullstring)) 'работают другие значения


Код: vbnet
1.
Call SomeProc(nz(dlookup("[field1]","tblName","[id]=1"),vbnullstring)) 'меняем только первое значение


Код: vbnet
1.
Call SomeProc(, nz( dlookup("[field1]","tblName","[id]=2"),vbnullstring)) 'меняем только второе значение
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990910
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Код подключается к определенному ресурсу компании и выгружает оттуда определенные данные.
Раньше эти константы можно было прописать как именно констант в коде, теперь так нельзя, они будут меняться, сам код же должен быть неизменным
Поэтому возникла необходимость в правке
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990912
greker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Спасибо, завтра утром буду пробовать
...
Рейтинг: 0 / 0
VBA Access 2016 использование текстовых значений
    #39990915
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greker
Код подключается к определенному ресурсу компании и выгружает оттуда определенные данные.
Раньше эти константы можно было прописать как именно констант в коде, теперь так нельзя, они будут меняться, сам код же должен быть неизменным
Поэтому возникла необходимость в правке
мне не интересны эти объяснения, тем более они уже повторяю написанное выше. Я задал конкретный вопрос.

Ты можешь написать первую строку (уже даже и не знаю как спросить) кода где находятся эти константы? Подсказка - эта строка обычно начинается так
Код: vbnet
1.
2.
3.
Public Sub ...
'или
Public Function...

и найти места вызова в коде
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / VBA Access 2016 использование текстовых значений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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