Кто подскажет вот в таком вопросе. Есть форма, в которой есть список и поле. Я выбираю в списке нужную строчку и ввожу в поле число и нажимаю кнопку Ввести. Вопрос вот в чем, если я выбираю в списке другую строчку, то в поле остается прежнее число. Как прописать код, чтобы в этом поле снова было пусто? Заранее спасибо.
» VBA for Access
Elena3785
Попробуй на кнопку после своего кода добавить
Me.[имя поля] = ""
или этот же код добавить на ListBox OnClick Event
Место добавления кода зависит от нужной логики работы
Попробуй на кнопку после своего кода добавить
Me.[имя поля] = ""
или этот же код добавить на ListBox OnClick Event
Место добавления кода зависит от нужной логики работы
Подскажите, пожалуйста, как организовать такую процедуру для формы по добавлению записей в таблицу, которая после нажатия кнопки будет выводить:
1) "В какую таблицу желаете добавить запись? "
2) "Введите значение для поля Поле_1" (где название поля будет считываться из таблицы, имя которой мы задали раньше + можно будет выбрать тип данных для введенного значения)
3) "Введите значение для поля Поле_2" (где название поля будет считываться из таблицы, имя которой мы задали раньше + можно будет выбрать тип данных для введенного значения)
и т.д, пока не закончатся поля в таблице
ПОЖАЛУЙСТА, третью ночь не сплю(( если что-то не понятно спрашиваю - растолкуйте - перефразирую
1) "В какую таблицу желаете добавить запись? "
2) "Введите значение для поля Поле_1" (где название поля будет считываться из таблицы, имя которой мы задали раньше + можно будет выбрать тип данных для введенного значения)
3) "Введите значение для поля Поле_2" (где название поля будет считываться из таблицы, имя которой мы задали раньше + можно будет выбрать тип данных для введенного значения)
и т.д, пока не закончатся поля в таблице
ПОЖАЛУЙСТА, третью ночь не сплю(( если что-то не понятно спрашиваю - растолкуйте - перефразирую
здравствуйте!!!!!!
помогите пожалуйста...у меня вот такая проблемма!!!!
я недавно начла занматься БД....,по работе понадоблось...сделала вроде всё что нужно...
а вот начальник сказал что нужно ещё сделать процедуру на VBA для анализа верности запроса.
есть БД...по программному обеспеч..в ней 3 запроса...ПО/техподдержка,ПО/отдел,ПО/поставыщик...
при запуске запроса вылетает окошко..где просят ввсести..к примеру наименование ПО..после нажатия ОК.вылетает форма на таблицу,где написаны результаты запроса...
если ж ввожить данные которых не существукет,изначально в самой БД,т.е. они не были в неё внесены,то вылетает пустая таблица...
а необходимо что б вылетало сообщение об ошибке,или не предпрнималось никаких действий...
помогите пожалуйста....очень нужно...не пойму как это сделать...
помогите пожалуйста...у меня вот такая проблемма!!!!
я недавно начла занматься БД....,по работе понадоблось...сделала вроде всё что нужно...
а вот начальник сказал что нужно ещё сделать процедуру на VBA для анализа верности запроса.
есть БД...по программному обеспеч..в ней 3 запроса...ПО/техподдержка,ПО/отдел,ПО/поставыщик...
при запуске запроса вылетает окошко..где просят ввсести..к примеру наименование ПО..после нажатия ОК.вылетает форма на таблицу,где написаны результаты запроса...
если ж ввожить данные которых не существукет,изначально в самой БД,т.е. они не были в неё внесены,то вылетает пустая таблица...
а необходимо что б вылетало сообщение об ошибке,или не предпрнималось никаких действий...
помогите пожалуйста....очень нужно...не пойму как это сделать...
Panteryl4ik
Попробуй в той же процедуре на обработку нажатия OK поставить проверку количества рекордов в результате. Что-то вида:
IF Me.Recordset.RecordCount>0 then
вылетает форма на таблицу
ELSE
MsgBox "Ничего нет"
End If
Что бы сказать точнее, надо видеть каким образом, с каким именем и где создается рекордсет.
Попробуй в той же процедуре на обработку нажатия OK поставить проверку количества рекордов в результате. Что-то вида:
IF Me.Recordset.RecordCount>0 then
вылетает форма на таблицу
ELSE
MsgBox "Ничего нет"
End If
Что бы сказать точнее, надо видеть каким образом, с каким именем и где создается рекордсет.
спасибо огромное...т.е. мне нужно на саму форму запроса написать процедуру,кот-ую вы предложили...на событие нажатие кнопки?!
просто это окошко для ввода данных при выполнении запроса автоматич выводтся...этого я не прописывала...
просто это окошко для ввода данных при выполнении запроса автоматич выводтся...этого я не прописывала...
помогите пожалуйста!
для заполнения таблицы создается форма с текстовым полем, и при нажатие на кнопку данные из поля должны появиться в конкретном столбце в таблице.
DAO
для заполнения таблицы создается форма с текстовым полем, и при нажатие на кнопку данные из поля должны появиться в конкретном столбце в таблице.
DAO
Panteryl4ik
Без кода ничего сказать невозможно. Такой if можно применить на вызов разных событий. Все зависит от логики работы существующего кода.
Скорее всего на обработку нажатия кнопки OK.
Без кода ничего сказать невозможно. Такой if можно применить на вызов разных событий. Все зависит от логики работы существующего кода.
Скорее всего на обработку нажатия кнопки OK.
вот именно код я и не знаю как писать. у меня есть таблица выставки, и форма добавить запись с несколькими полями для ввода, и кнопка сохранить. вот я и не знаю что надо прописать так чтобы при нажатии на кнопку данные из этих полей добавились в нужные столбцы в таблице(
Добавлено:
блин я сначала не увидела думала что вы мне ответили(
Добавлено:
блин я сначала не увидела думала что вы мне ответили(
djoninet
Можно совсем без кода. Просто привязать тeкстбоксы к полям. Тогда любое изменение тут же записывается в базу.
Только это "неприлично"
Посмотри
http://bytes.com/topic/access/answers/458412-add-update-records-vba
http://functionx.com/vbaccess2003/howto/addrecord.htm
http://www.access-programmers.co.uk/forums/archive/index.php/t-33166.html
Можно совсем без кода. Просто привязать тeкстбоксы к полям. Тогда любое изменение тут же записывается в базу.
Только это "неприлично"
Посмотри
http://bytes.com/topic/access/answers/458412-add-update-records-vba
http://functionx.com/vbaccess2003/howto/addrecord.htm
http://www.access-programmers.co.uk/forums/archive/index.php/t-33166.html
не там препод зверь, ей обязательно через код прописать надо........
djoninet
Так смотри ссылки
Так смотри ссылки
с этим еще куда не шло...... а как прописать, чтоб пр и нажатие на кнопку удалить запись, у удалялась строчка в таблице?
ох хреновый из меня делатель бд...
Добавлено:
Private Sub Кнопка8_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Выставки")
rs.AddNew
rs("НазваниеВыставки") = Me![НазваниеВыставки]
rs.Update
rs.Close
End Sub
Добавлено:
Private Sub Кнопка8_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Выставки")
rs.AddNew
rs("НазваниеВыставки") = Me![НазваниеВыставки]
rs.Update
rs.Close
End Sub
djoninet
И...? Зачем здесь этот код?
Если работает - поздравляю. Если нет - где возникающие errors?
И...? Зачем здесь этот код?
Если работает - поздравляю. Если нет - где возникающие errors?
ну я пыталась чтоб из поля "НазываниеВыставки " в форме данные добавились в одноименное поле в табл........... ииииии это не работает, ему не нравиться обновление Update
djoninet
И какая именно ошибка выскакивает. Лучше показать скрин.
Для этого можно использовать http://imageshack.us/
1. Существует ли в table поле "НазваниеВыставки" ?
2. Какой data type имеет поле "НазваниеВыставки" ? Может в него нельзя вносить string.
3. Мoжно попробовать заменить всю кирилицу на нормальные английские буквы.
4. Может быть програма путает имя контрола и имя пoля. Сделать разными.
И какая именно ошибка выскакивает. Лучше показать скрин.
Для этого можно использовать http://imageshack.us/
1. Существует ли в table поле "НазваниеВыставки" ?
2. Какой data type имеет поле "НазваниеВыставки" ? Может в него нельзя вносить string.
3. Мoжно попробовать заменить всю кирилицу на нормальные английские буквы.
4. Может быть програма путает имя контрола и имя пoля. Сделать разными.
Подскажите, ПОЖАЛУЙСТА, как считывать название поля из готовой таблицы? Хочу сделать добавление записей через inputbox, чтобы в окне было написано "Введите значение в поле "Код"", где "код" или какое-нибудь другое имя поля считывалось бы из таблицы. И ещё такой вопрос, если всё таки можно как-нибудь считать название всех полей таблицы - как потом в них помещать вводимые через inputbox значения? можно ли через:
.AddNew
."переменная, в которую помещается имя поля" = "значени, которое вводит пользователь"
.AddNew
."переменная, в которую помещается имя поля" = "значени, которое вводит пользователь"
dneprcomp
Спасибо!) наконец-то меня кто-то услышал)
Спасибо!) наконец-то меня кто-то услышал)
dneprcomp
Я посмотрел ваши ссылки, и в принципе понял как это реализовать, только не знаю как это прописывать... Вы не могли бы привести мне простейший пример кода, который позволит добавлять запись в таблицу через inputbox, по отдельности задавая данные в каждое поле. При чём имя поля будет показываться пользователю в окне inputbox, чтобы он знал куда вводит данные?
Пожалуйста помогите... очень хочется реализовать, но не знаю как)
Я посмотрел ваши ссылки, и в принципе понял как это реализовать, только не знаю как это прописывать... Вы не могли бы привести мне простейший пример кода, который позволит добавлять запись в таблицу через inputbox, по отдельности задавая данные в каждое поле. При чём имя поля будет показываться пользователю в окне inputbox, чтобы он знал куда вводит данные?
Пожалуйста помогите... очень хочется реализовать, но не знаю как)
Vilerius
Для начала можно попробовать вместо
Код: SELECT CusID, CusCompany, CusAccountNo
FROM tblCustomers
WHERE CusID = 1
Для начала можно попробовать вместо
Код: SELECT CusID, CusCompany, CusAccountNo
FROM tblCustomers
WHERE CusID = 1
dneprcomp
Честно, не понимаю, что вы имеете ввиду. Я плохо знаком с Vba. Посмотрите, пожалуйста, фрагмент моего кода и подскажите как правильно зациклить добавление записей:
Private Sub Кнопка1_Click()
Dim Rst As Recordset
Dim f As Field
tabl_name = InputBox("Введите название таблицы, в которую хотите добавить данные", "Добавление данных", "Имя_таблицы")
Set Rst = CurrentDb.OpenRecordset(tabl_name)
For Each f In Rst.Fields
Ndan = InputBox("Введите данные для поля " & f.Name, "Добавление данных", "Введите данные")
n = f.Name
Rst.AddNew
f.Value = Ndan
Rst.Update
Next
Rst.Close
MsgBox "Все данные успешно добавлены!", vbOKOnly, "Добавление данных"
End Sub
С данным вариантом кода данные вводятся только в первое поле, а потом выдаёт ошибку.
Честно, не понимаю, что вы имеете ввиду. Я плохо знаком с Vba. Посмотрите, пожалуйста, фрагмент моего кода и подскажите как правильно зациклить добавление записей:
Private Sub Кнопка1_Click()
Dim Rst As Recordset
Dim f As Field
tabl_name = InputBox("Введите название таблицы, в которую хотите добавить данные", "Добавление данных", "Имя_таблицы")
Set Rst = CurrentDb.OpenRecordset(tabl_name)
For Each f In Rst.Fields
Ndan = InputBox("Введите данные для поля " & f.Name, "Добавление данных", "Введите данные")
n = f.Name
Rst.AddNew
f.Value = Ndan
Rst.Update
Next
Rst.Close
MsgBox "Все данные успешно добавлены!", vbOKOnly, "Добавление данных"
End Sub
С данным вариантом кода данные вводятся только в первое поле, а потом выдаёт ошибку.
Vilerius
Цитата:
Изменения разрешаются командой AddNew для всех полей добавляемого рекорда. После Update рекорсет закрыт для добавлений.
Т.о., если надо произвести добавлениe с изменением нескольких полей, надо присваивать данные всем нужным полям до исполнения команды Update
Код: Dim Rst As Recordset
Dim f As Field
tabl_name = InputBox("Введите название таблицы, в которую хотите добавить данные", "Добавление данных", "Имя_таблицы")
Set Rst = CurrentDb.OpenRecordset(tabl_name)
Rst.AddNew
For Each f In Rst.Fields
Ndan = InputBox("Введите данные для поля " & f.Name, "Добавление данных", "Введите данные")
n = f.Name
f.Value = Ndan
Next
Rst.Update
Rst.Close
MsgBox "Все данные успешно добавлены!", vbOKOnly, "Добавление данных"
Цитата:
С данным вариантом кода данные вводятся только в первое поле, а потом выдаёт ошибкуИ правильно делает
Изменения разрешаются командой AddNew для всех полей добавляемого рекорда. После Update рекорсет закрыт для добавлений.
Т.о., если надо произвести добавлениe с изменением нескольких полей, надо присваивать данные всем нужным полям до исполнения команды Update
Код: Dim Rst As Recordset
Dim f As Field
tabl_name = InputBox("Введите название таблицы, в которую хотите добавить данные", "Добавление данных", "Имя_таблицы")
Set Rst = CurrentDb.OpenRecordset(tabl_name)
Rst.AddNew
For Each f In Rst.Fields
Ndan = InputBox("Введите данные для поля " & f.Name, "Добавление данных", "Введите данные")
n = f.Name
f.Value = Ndan
Next
Rst.Update
Rst.Close
MsgBox "Все данные успешно добавлены!", vbOKOnly, "Добавление данных"
dneprcomp
А подскажите, пожалуйтста, как это реализовать: "присваивать данные всем нужным полям"?
А подскажите, пожалуйтста, как это реализовать: "присваивать данные всем нужным полям"?
Vilerius
Цитата:
Попробуй использовать мой код
Цитата:
А подскажите, пожалуйтста, как это реализовать
Попробуй использовать мой код
Извините) я сразу не заметил разницы) теперь вижу. сейчас буду пробывать...
dneprcomp
Спасибо огромное!!! Всё работает) но теперь у меня появились другие вопросы)
1) Когда создаю таблицу или удаляю - в окне объектов она появляется или исчезает только после сохранения базы. Как это можно исправить.
2)Преподаватель потребовал сделать так, чтобы при открытии базы сразу вылетала форма без окна асcess, при этом, чтобы был запоролен доступ к редактированию кода и к конструктору тоже.... может быть и в этом вы сможете мне помочь
Большое спасибо, что помогаете)
Спасибо огромное!!! Всё работает) но теперь у меня появились другие вопросы)
1) Когда создаю таблицу или удаляю - в окне объектов она появляется или исчезает только после сохранения базы. Как это можно исправить.
2)Преподаватель потребовал сделать так, чтобы при открытии базы сразу вылетала форма без окна асcess, при этом, чтобы был запоролен доступ к редактированию кода и к конструктору тоже.... может быть и в этом вы сможете мне помочь
Большое спасибо, что помогаете)
Vilerius
#1 Покажи скрин в котором появляется таблица
Для показа скрина используй http://imageshack.us/
После аплоада файла скопируй ссылку для форумов и помести сюда
#2
http://www.google.com/search?hl=en&source=hp&q=ms+access+login+form&aq=0&oq=ms+access+log&aqi=g10
http://www.google.com/search?hl=en&source=hp&q=ms+access+hide+database+window&aq=0&oq=ms+access+hide&aqi=g10
http://www.google.com/search?hl=en&source=hp&q=ms+access+password+protect&aq=2&oq=ms+access+password&aqi=g10
#1 Покажи скрин в котором появляется таблица
Для показа скрина используй http://imageshack.us/
После аплоада файла скопируй ссылку для форумов и помести сюда
#2
http://www.google.com/search?hl=en&source=hp&q=ms+access+login+form&aq=0&oq=ms+access+log&aqi=g10
http://www.google.com/search?hl=en&source=hp&q=ms+access+hide+database+window&aq=0&oq=ms+access+hide&aqi=g10
http://www.google.com/search?hl=en&source=hp&q=ms+access+password+protect&aq=2&oq=ms+access+password&aqi=g10
Страницы: 1234567891011121314151617
Предыдущая тема: Delphi+ADO
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.