Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBA for Access

Модерирует : ShIvADeSt

ShIvADeSt (14-09-2011 00:58): Все обсуждение тут http://forum.ru-board.com/topic.cgi?forum=33&topic=0357&start=1180  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

   

dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
djoninet
И какая именно ошибка выскакивает. Лучше показать скрин.
Для этого можно использовать http://imageshack.us/
 
1. Существует ли в table поле "НазваниеВыставки" ?
2. Какой data type имеет поле "НазваниеВыставки" ? Может в него нельзя вносить string.
3. Мoжно попробовать заменить всю кирилицу на нормальные английские буквы.
4. Может быть програма путает имя контрола и имя пoля. Сделать разными.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 22:45 20-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, ПОЖАЛУЙСТА, как считывать название поля из готовой таблицы? Хочу сделать добавление записей через inputbox, чтобы в окне было написано "Введите значение в поле "Код"", где "код" или какое-нибудь другое имя поля считывалось бы из таблицы. И ещё такой вопрос, если всё таки можно как-нибудь считать название всех полей  таблицы - как потом в них помещать вводимые через inputbox значения? можно ли через:
.AddNew
."переменная, в которую помещается имя поля" = "значени, которое вводит пользователь"

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 09:19 22-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vilerius
http://www.codeguru.com/forum/showthread.php?s=&threadid=219871&highlight=fieldname
http://www.codeguru.com/forum/archive/index.php/t-243620.html
http://forums.techguy.org/business-applications/526520-solved-getting-field-names-tables.html

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 10:03 22-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
 
Спасибо!) наконец-то меня кто-то услышал)
 

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 10:12 22-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
 
Я посмотрел ваши ссылки, и в принципе понял как это реализовать, только не знаю как это прописывать... Вы не могли бы привести мне простейший пример кода, который позволит добавлять запись в таблицу через inputbox, по отдельности задавая данные в каждое поле. При чём имя поля будет показываться пользователю в окне inputbox, чтобы он знал куда вводит данные?  
 
Пожалуйста помогите... очень хочется реализовать, но не знаю как)

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 16:15 22-12-2009 | Исправлено: Vilerius, 16:17 22-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vilerius
Для начала можно попробовать вместо  

Код:
SELECT CusID, CusCompany, CusAccountNo
FROM tblCustomers
WHERE CusID = 1
 
что то вида:

Код:
strSQL = "SELECT CusID, " &  Me![inputbox name] & " , CusAccountNo FROM tblCustomers
WHERE CusID = 1"
 
Затем уже strSQL можно подставлять везде вместо самого SELECT стeйтмента.
Если не получится в некоторых случаях использовать переменную, то можно попробовать присвоить свойству DataSource контрола полученый 'собранный' стринг
 
 

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:39 22-12-2009 | Исправлено: dneprcomp, 21:00 22-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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
 
 
С данным вариантом кода данные вводятся только в первое поле, а потом выдаёт ошибку.

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 23:58 22-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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, "Добавление данных"  
 
 

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 00:40 23-12-2009 | Исправлено: dneprcomp, 01:00 23-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
 
А подскажите, пожалуйтста, как это реализовать: "присваивать данные всем нужным полям"?

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 00:54 23-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vilerius

Цитата:
А подскажите, пожалуйтста, как это реализовать

Попробуй использовать мой код

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 03:14 23-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините) я сразу не заметил разницы) теперь вижу. сейчас буду пробывать...

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 03:21 23-12-2009 | Исправлено: Vilerius, 03:26 23-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
 
Спасибо огромное!!! Всё работает) но теперь у меня появились другие вопросы)
 
1) Когда создаю таблицу или удаляю - в окне объектов она появляется или исчезает только после сохранения базы. Как это можно исправить.
 
2)Преподаватель потребовал сделать так, чтобы при открытии базы сразу вылетала форма без окна асcess, при этом, чтобы был запоролен доступ к редактированию кода и к конструктору тоже.... может быть и в этом вы сможете мне помочь
 
Большое спасибо, что помогаете)

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 18:00 23-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:42 23-12-2009
Panteryl4ik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
здравствуйте,помогите кто чем сможет=)))
мне нужно,чтобы поля кода,заполнялись автоматом,из других таблиц.
у меня сделано,через подстановку.
есть таблица PO,в ней к примеру Name_PO,PO_Code,Otdel_Code
на PO_Code стоит условие,по умолчанию текуще время,Name_PO забивается ручками,а вот в поле Otdel_Code существует список где указны все коды,и нужно самому выбирать.
а как сделать так.что б,оно заполнялось автоматом,а не пользоватлю выбирать?!
заране спс

Всего записей: 4 | Зарегистр. 16-12-2009 | Отправлено: 16:58 24-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Panteryl4ik
И как компьютер будет выбирать из списка нужное значение Otdel_Code?  Random?

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 17:23 24-12-2009 | Исправлено: dneprcomp, 17:24 24-12-2009
Panteryl4ik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну нет,с таблицы Otdel...где так же есть Name_Otdela,Otdel_Code
они связаны между собой

Всего записей: 4 | Зарегистр. 16-12-2009 | Отправлено: 17:49 24-12-2009
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Panteryl4ik
И как компьютер должен выбирать из списка нужное значение Otdel_Code для ДАННОГО КОНКРЕТНОГО  Name_PO?

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:51 24-12-2009 | Исправлено: dneprcomp, 20:51 24-12-2009
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Я понял как скрывать окно объектов базы, но теперь меня интересует: можно ли скрыть панель инструментов или хотя бы заблокировать к ней доступ, чтобы пользователь ничего не мог через неё менять?
И второй вопрос) можно ли в том поле, которое является элементом управления формой, вывести названия всех имеющихся таблиц? подробнее на скрине
http://img101.imageshack.us/img101/9512/ruboard.jpg
Спасибо ещё раз за помощь!)

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 06:35 07-01-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vilerius
#1
Hide the Ribbon When Access Starts
How do I enumerate tables in an Access Database

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 07:06 07-01-2010
Vilerius

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
C панелью разобрался)
А вот о таблицах не понял вообще. Разъясните мне, чайнику, пожалуйста) можно ли вообще как-то выводить их названия в этом поле, которое я указал? в том примере, что вы мне предложили применяется элемент activeX - с чем его есть? как и где его подключать и т.д.?
И ещё - какой код прописать, чтобы в форме с кнопки запускался Microsoft Visual Basic ?
 
Добавлено:
И, пожалуйста, проверьте почему , когда я пытаюсь удалить данные по выбору при помощи кода
 
Private Sub Кнопка7_Click()
 
On Error GoTo err
     
x = InputBox("Введите название таблицы, в которой хотите произвести изменения", "Удаление записи в таблице")
z = InputBox("Введите имя поля, по которому будет идти выбор значения", "Выбор поля")
y = InputBox("Введите значение, которое хотите удалить", "Ввод значения")
 
 
q = "DELETE * FROM " & x & " WHERE " & z & " = " & y & ";"
 
DoCmd.RunSQL q
 
Exit Sub
 
err:
 
    MsgBox "Удаление данных отменено!", , "Отмена"
 
End Sub
 
Числовые значения удаляются без проблем, а вот с остальными после ввода "y" - вылетает окно "введите параметр". Что с ним делать?

Всего записей: 29 | Зарегистр. 15-09-2009 | Отправлено: 19:00 07-01-2010 | Исправлено: Vilerius, 19:53 07-01-2010
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » VBA for Access
ShIvADeSt (14-09-2011 00:58): Все обсуждение тут http://forum.ru-board.com/topic.cgi?forum=33&topic=0357&start=1180


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru