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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос про группу переключателей уже не актуален - разобрался.
Может кто-то будет как я голову ламать - поэтому привиду образец кода:
 
Dim ХХХ As OptionGroup ' ХХХ - имя переменной, описывающей группы
Set ХХХ = YYY.ZZZ ' YYY - Имя формы, на которой расположена группа; ZZZ - имя группы на форме
 
Select Case XXX
   Case 1
      ...
   Case 2
      ...
   Case 3
      ...
   ...
End Select
 
Case X - соответствует переключателю (свойства переключателя, вкладка данные, значение параметра - там номер)
А далее идет код, который выполняется если переключатель/флажок выбран.

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 15:24 19-03-2010
Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги!
 
Помощь нужна. Все по той же группе:
 
Работать с переключателями я научился. Теперь хотел создать такую же группу, но только с флажками. Создал. Запустил форму и вижу - мне разрешается выбрать только один флажок в группе. Если я выбираю второй, то снимается выделение с первого. Т.е. теряется смысл флажка - флажок становится переключателем.
 
Вот и вопрос у меня - группа работает только с переключателями? С флажками она не работает? Или я что-то не так сделал - в какую сторону капать?
Хотя догадываюсь, что все-таки группа работает только с переключателями...
 
Поможете? Или я тут в игноре у всех?
 
P.S.:
- Доктор! Меня все игнорируют!
- Следующий...

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 10:49 22-03-2010 | Исправлено: Oyger, 10:53 22-03-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Хочешь логику "или" - используй frame.  
Хочешь логику "и" - используй rectangle(box).  

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Большое спасибо. Вы подтвердили мои предположения.
Только я осмелюсь Вас поправить - не frame, а OptionGroup.
Спасибо за помощь.
 
Добавлено:
Меня напрягает то, что когда я вставляю rectangle, то он вставляется без заголовка. Его приходится добавлять отдельно надписью. А как было убодно с frame в VBA Excel... /вздыхает/
 
Добавлено:
Коллеги!
 
И вот опять я в луже. Уже целый день б'юсь над задачей, так и немогу найти решение.
Все в коде VBA. В зависимосте от сочитания флажков и переключателей на форме переменной присваивается текст запроса на выборку формата: Select ... From ... Where ... Group by ...;
Нужно его отработать и вывести рузультат на экран.
Т.к. запрос на выборку - RunSQL и Execute отпадают.
Копаю в сторону Recordset'а. Запрос-то я ему присваиваю - работает без ошибок. А как на экран результат вывести? Есть какая-нибудь команда - не могу такой найти. Или я не в ту сторону смотрю, а ответ совсем в другом направлении?
Подскажите - хотябы названием функции.
 
Спасибо.

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 12:18 23-03-2010 | Исправлено: Oyger, 12:29 23-03-2010
RioBravo



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Нужна помощь. Необходимо создать кнопку в форме, при нажатии на которую, открывалось окно выбора файла, после чего путь к файлу заносился в таблицу. Заранее благодарен.

Всего записей: 31 | Зарегистр. 22-07-2009 | Отправлено: 19:26 23-03-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Меняй record source формы(или контрола). Подставляй свой новосозданный запрос как record source. Скорее всего придется сделать еще и refresh как-нибудь

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 02:42 24-03-2010
Alexikit

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Результаты запроса можно вывести например при помощи DataGrid.  
 

Всего записей: 79 | Зарегистр. 01-04-2009 | Отправлено: 12:05 24-03-2010 | Исправлено: Alexikit, 12:07 24-03-2010
Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Спасибо за ответ - навели на мысль...
Alexikit
К сожалению я не знаю, что такое DataGrid... В Object Browser такого не нашел. Подскажите на будущее - посмотрю, почитаю и буду использовать...
 
Задачу решил так.
На форме создал две вкладки (page):
1) Условие - набор влажков и переключателей
2) Результат проверки - всего один ListBox на всю вкладку
При нажатии кнопки формируется текст запроса, исходя из выбранных переключателей и флажков (число полей на выходе тоже колеблится)
После получения текста запроса:
1) Выбираем вторую вкладку (SetFocus)
2) В ListBox задается нужное число столбцов (равняется числу столбцов в выборке - ColumnCount)
3) делаем RowSource для ListBox
Пока устраивает. В будущем еще хочу предусмотреть возможность при нажатии кнопки выгрузки результата из ListBox в Excel.
Спасибо.

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 12:28 24-03-2010 | Исправлено: Oyger, 12:29 24-03-2010
Alexikit

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oyger
Надо просто подключить эту функцию, я правда когда работала с Access базой, то писала из вне, просто в VB, там если щелкнуть по TOOLBOX, то в компонентах можно подключить Datagrid.  
почитать можно например здесь
 
 http://msdn.microsoft.com/ru-ru/library/fxfa9793.aspx
http://www.compress.ru/article.aspx?id=11448&iid=450

Всего записей: 79 | Зарегистр. 01-04-2009 | Отправлено: 13:19 24-03-2010 | Исправлено: Alexikit, 13:51 24-03-2010
Oyger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexikit
Спасибо. Почитаю.

Всего записей: 122 | Зарегистр. 22-03-2007 | Отправлено: 15:02 24-03-2010
RioBravo



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Проблема в следующем:
В Access 2003 создана таблица, содержащая 2 поля - Дата Рождения и Фамилия
Необходимо сделать запрос, который бы отображал записи, у которых дата рождения находится после определенной даты и только записи с людьми которым исполнился определенный возраст. Необходимо предусмотреть возможность, при которой оба поля (Дата и Возраст) могли бы оставаться пустыми.
 
Создается запрос в котором
 
Дата![Дата рождения]
 
IIf([Возраст] Is Null Or [Дата] Is Null;[Дата]![Дата рождения];>=DateSerial(Year([Дата])-[Возраст];Month([Дата]);Day([Дата])))
 
 
При вводе пустых значений возникает ошибка: "Выражение неверно введено или является слишком сложным для расчета..."

Всего записей: 31 | Зарегистр. 22-07-2009 | Отправлено: 23:07 27-03-2010 | Исправлено: RioBravo, 23:12 27-03-2010
georgbird



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток.
 Помогите пожалуйста. Не могу решить такую задачу: при внесении данных в одну таблицу (Фамилия, Имя), нужно чтобы автоматически создавалась другая таблица, и ИМЯ этой новой таблицы представляло собой сочетание Фамилия+Имя. Например:
 Иванов Иван:таблица
 
очевидное решение таково:
 

Код:
 
Sub CreateTblVedomost(tblName As String)
 
    'параметр tblName передаётся из другой процедуры
    'tblName = "фамилия" + "имя"
 
    Dim dbs As Database
    Set dbs = Application.CurrentDb
    dbs.Execute "CREATE TABLE tblName (Код INTEGER PRIMARY KEY, Поле 1,  Поле2, ... );"
 

 
Но, при такой реализации создается таблица с именем  
tblName:таблица
хотя сама переменная tblName содержит в себе Фамилию и Имя (Иванов Иван).
Подскажите пожалуйста свои решения такой задачи  
Спасибо.

Всего записей: 230 | Зарегистр. 05-12-2006 | Отправлено: 12:19 28-03-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
georgbird
dbs.Execute "CREATE TABLE " + tblName + " (Код INTEGER PRIMARY KEY, Поле 1,  Поле2, ... );"  

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:14 28-03-2010
georgbird



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Спасибо, не помогло.
пишет:

Цитата:
 
Ошибка синтаксиса конструкции CREATE TABLE
 

 
P.S. Access 2007
 
Добавлено:
решил таким способом:
 

Код:
 
 Sub CreateTblVedomost(tblName As String)
    Dim dbs As Database
    Dim tblNew As TableDef
    Dim fld1 As Field
    Set dbs = Application.CurrentDb
    Set tblNew = dbs.CreateTableDef(tblName)
    Set fld1 = tblNew.CreateField("Test", dbText)
    tblNew.Fields.Append fld1
    dbs.TableDefs.Append tblNew
    dbs.TableDefs.Refresh
     
End Sub
 
 

 
громоздко конечно... но VBA сам по себе нагромождение кривых идей, имхо

Всего записей: 230 | Зарегистр. 05-12-2006 | Отправлено: 23:11 28-03-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
georgbird
Попробуй
dbs.Execute "CREATE TABLE " & tblName & " (Код INTEGER PRIMARY KEY, Поле 1,  Поле2, ... );"

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 03:25 29-03-2010
georgbird



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

Цитата:
dbs.Execute "CREATE TABLE " & tblName & " (Код INTEGER PRIMARY KEY, Поле 1,  Поле2, ... );"  

 
я уже по всякому перепробовал, результат одинаковый - либо  
tblName:таблица
либо ошибка:

Цитата:
Ошибка синтаксиса конструкции CREATE TABLE  

 
Так что придется либо

Код:
 
   Set tblNew = dbs.CreateTableDef(tblName)  
 

 
либо
 

Код:
 
   Set tblNew = New ADOX Table
     .Name = tblName
    .Columns.Append "Field 1" ....
    Tables.Append. tblNew
         
 

 
но всё равно, спасибо за поддержку

Всего записей: 230 | Зарегистр. 05-12-2006 | Отправлено: 19:20 29-03-2010 | Исправлено: georgbird, 19:23 29-03-2010
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
georgbird
Нет, есть еще вариант. Вроде бы давно у меня тоже было нечто подобное.
Dim strSQL as string
'пробовать '+' тоже, т.к что именно подерживает VBA не помню.
strSQL = "CREATE TABLE " & tblName & " (Код INTEGER PRIMARY KEY, Поле 1,  Поле2, ... );"  
dbs.Execute strSQL

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 21:46 29-03-2010
georgbird



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Спасиби. буду эксперементировать и сравнивать

Всего записей: 230 | Зарегистр. 05-12-2006 | Отправлено: 20:50 30-03-2010
RioBravo



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Все, уже решил.

Всего записей: 31 | Зарегистр. 22-07-2009 | Отправлено: 12:06 31-03-2010 | Исправлено: RioBravo, 12:17 31-03-2010
JustinDEbass

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Могли бы вы подсказать или помочь написать модуль, который выдает диск в долг знакомому. При этом диск выдается только в том случае если знакомый имеет на руках не более 3 взятых ранее в долг дисков и все диски, которые он брал до этого, возвращал в срок.
У меня 4 таблицы:
Моя библиотека: в ней расположена информация о всех дисках и книгах которые есть у меня, и диски которые отдал в долг. Столбцы: Тип носителя (значения Диск(DVD) или Диск(CD)) и Шифр(Это код книги или диска, по которому я выдаю диск в долг тоисть этот столбец связан с Шифром в Мне должны) ну и другие столбцы...
Мне должны: расположены ФИО знакомых которым я отдал в долг диск или книгу, так же есть Шифр диска или книги так же есть Дата возврата. Столбцы: ФИО, Шифр, Дата возврата
Я должен: в этой таблице расположена информация о том что я должен, ну... эта таблица в данной задаче не фигурирует и описывать её подробно нет необходимости.
Знакомые: здесь расположена информация о знакомых которые мне должны, или которым я должен, или просто знакомые. Столбцы: ФИО, Адрес, Телефон.
Извините саму БД не могу выложить форум пишет что это спам =*(

Всего записей: 1 | Зарегистр. 03-04-2010 | Отправлено: 07:42 03-04-2010 | Исправлено: JustinDEbass, 07:45 03-04-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