Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Access VBA

Автор: Yado
Дата сообщения: 04.02.2011 11:07
dneprcomp
Писал человек, который ничего не объяснил (типа работает и все)
все сделал как сказали.
Private Sub Поле0_KeyUp(KeyCode As Integer, Shift As Integer)
Dim strSQL As String
strSQL = "SELECT Запрос2.Goods, Запрос2.Price, Запрос2.Suppl, Запрос2.Cod FROM Запрос2 WHERE Запрос2.Goods Like '" & Me!Поле0.Value & "*';"
If KeyCode = vbKeyReturn Then
Me!List2.RowSource = strSQL
End If

End Sub

Но проблема осталась: надо нажать 2 раза enter? чтобы осуществился поиск(

Автор: dneprcomp
Дата сообщения: 04.02.2011 19:20
Yado

Цитата:
надо нажать 2 раза enter? чтобы осуществился поиск

Возможно, что vbKeyReturn добавляется в strSQL и влияет на выполнение кода.
Что бы полностью исключить всякое лишнее я бы просто поставил на форму button и на ее клик ивент перенес весь код так как он был на Change. Без блока IF
Код: Dim strActiveControlName As String
Dim strSQL As String
Dim strWhere As String

strActiveControlName = Screen.ActiveControl.Name
strWhere = "WHERE True "

If strActiveControlName = "Поиск0" Then
If Len(Me!Поиск0.Text & "") > 0 Then
strWhere = strWhere & "And Запрос2.Goods Like '" & Me!Поле0.Text & "*' "
End If
Else
If Len(Me!Text0.Value & "") > 0 Then
strWhere = strWhere & "And Запрос2.Goods Like '" & Me!Поле0.Value & "*' "
End If
End If


strSQL = "SELECT Запрос2.Suppl, Запрос2.Cod, Запрос2.Goods, Запрос2.Price FROM Запрос2 " & strWhere & ";"
Me!List2.RowSource = strSQL
Автор: ifs
Дата сообщения: 10.02.2011 09:58
Всем привет!
При импорте из тектового файла нужно текст 20110210 в Access видеть как дату 10.02.2011
Может подскажте?

Добавлено:
Вообще-то я, видимо, начал не с того.
Опишу задачу.
Есть участники форума, пишущие сообщения. Надо вести статистику кто, когда, сколько запостил. Присутствие участника ограничено временными рамками (с 01.01.2011 по 30.06.2011, например). Его можно продлевать.
Данные с сайта можно получить один раз в сутки в виде текстового файла в таком виде (построчно):

Ник1,20110101,20110228,888
Ник2,20110110,20110309,50
Ник3,20010201,20110331,25
.
.
.
И т.д.

Это было вчера. Завтра может быть

Ник1,20110101,20110228,898
Ник2,20110110,20110309,50
Ник3,20010201,20110331,27
.
.
.
И т.д.

Т.е., Ник1 сделал 10 сообщений, Ник2 прогулял, Ник3 - 2 сообщения. И т.д.

Может кто знает что-то похожее? Чтобы покопаться.
Или куда в другую сторону направит.
Спасибо.
Автор: Vitus_Bering
Дата сообщения: 10.02.2011 11:39
ifs
Проще изменить формат данных с сайта.
Автор: albelous
Дата сообщения: 16.02.2011 12:48
Здравствуйте все!
Пытался обновить записи поля "1" таблицы RS2009 значениями из поля "1" таблицы Importer при совпадении связанного ключвого поля "Time", для чего соорудил с помощью мастера Access следующее:
UPDATE RB2009, Importer SET RB2009.1 = Importer.1, RB2009.2 = Importer.2 WHERE RB2009.Time=Importer.Time
Однако, Access выдаёт ошибку: Недопустимое использование '.', '!' или '()'. В выражении запроса 'Importer'. '.

Что поправить, чтобы заработало?
Спасибо.

UPD: Решено. RTFM. Time - зарезервированное слово, ссылку на поле Time нужно убрать в квадратные скобки.
Автор: vofkanov
Дата сообщения: 16.02.2011 15:03
удалено
Автор: gilmOFF
Дата сообщения: 27.02.2011 20:45
Всем привет!!! помогите пожалуйста, есть база в access, есть фирмы и указана дата регистрации и дата банкротства!!!! как сделать выборку по дате, чтобы задавать период и по данному запросу выводились все фирмы которые прошли регистрацию?????
Автор: albelous
Дата сообщения: 27.02.2011 21:59
Во-первых Вы можете отфильтровать записи по дате непосредственно в режиме таблицы - рядом с именем поля в заголовке таблицы есть меню фильтра; через него можно задать диапазон дат.
Или, если Вы хотите cформировать запрос - воспользуйтесь построителем выражений, в качестве условия отбора указав диапазон: BETWEEN #dd.mm.yyyy# AND #dd.mm.yyyy# или то же на SQL: SELECT * FROM имя_таблицы WHERE ссылка_на ячейку_с_датами BETWEEN #dd.mm.yyyy# AND #dd.mm.yyyy#
Пример есть во встроенной справке по Access по ключевому слову BETWEEN.
Автор: gilmOFF
Дата сообщения: 28.02.2011 09:05
а как это все привязать к кнопке, т.е. например создал форму в ней два поля от какого числа по какое число мне нужны данные из таблицы, ввел и при нажатии получил отчет????
Автор: albelous
Дата сообщения: 28.02.2011 09:39
В свойствах кнопки, которую Вы поместите в форму с датами, есть событие OnClick - реакция на клик - здесь и нужно разместить вызов процедуры формирования запроса.
Автор: gilmOFF
Дата сообщения: 28.02.2011 09:54
уважаемый albelous, а можно по подробнее
Автор: albelous
Дата сообщения: 01.03.2011 07:43
Подробнее? Подробнее:
Дано: база, содержащая таблицу данных Исходная и временную таблицу размещения результата Временная.
Пусть в форме запроса дат Имя_Формы пользователь определяет поля Верхняя_Граница и Нижняя_Граница. Тогда, для выбора всех записей по полю Даты таблицы Исходная в диапазоне между указанными границами, достаточно поместить под кнопку код на VBA

Private Sub КнопкаПоказать_Click()

Dim sSQLCommand As String

sSQLCommand = "SELECT * INTO Временная FROM Исходная WHERE [Исходная]![Даты] Between [Формы]![Имя_Формы]![Нижняя_Граница] And [Формы]![Имя_Формы]![Верхняя_Граница]"

DoCmd.Close acTable, "Временная" 'закрываем, если открыта
DoCmd.DeleteObject acTable, "Временная" 'стираем существующую временную
DoCmd.RunSQL sSQLCommand 'выполняем запрос
DoCmd.Close acForm, "Имя_Формы" 'закрываем окно формы
DoCmd.OpenTable ("Временная") 'открываем пользователю результат

End Sub

На красоту и "правильность" решение не претендует, зато ошибиться в реализации трудно. Обработку ошибок, подавление сообщений об изменении базы и прочее предлагаю освоить самостоятельно
Автор: JAndrei
Дата сообщения: 10.03.2011 14:19
Здравствуйте.
Подскажите, есть ли решение:
Таблица сотрудников с несколькими полями "сменаА, Б, В,…." Поля заполняются из подчинённой формы в режиме таблицы (так удобно, чтобы иметь обзор) выбором из "полей со списком". В поле со списком для выбора всего три значения: 1, 2, 3 смена. Чтобы не раскрывать списки в полях таблицы и не выбирать значения (их всего три), есть ли какое-либо другое красивое решение: например, при наведении курсора на поле и нажатием на клавишу мыши вводилась 1 смена, при повторном нажатии - 2 смена, при 3 - 3 смена, 4 - опять пустое значение. Может как-то по другому. Спасибо.
Автор: Algofil
Дата сообщения: 11.03.2011 09:14

Цитата:
есть ли какое-либо другое красивое решение

есть стандартные решения, без ВБА, например:
Подстановка
тип эл. упр. - поле со списком
тип ист. строк - таблица или запрос
ист. строк - запрос (вроде такого: SELECT smena.N FROM smena ORDER BY smena.N;)
число ст. - 1
прис. столбец - 1
заглавия - нет
.... и т.д. все просто и по русски
результат: при переходе (неважно каким способом) в поле таблицы выбор из списка осуществляется нажатием на 1/2/3 например на нумпаде, при этом из списка автоматически выбирается строка, начинающаяся с введенного символа, запись обновляется, емнип, при потере фокуса (выходе из поля)
Автор: JAndrei
Дата сообщения: 11.03.2011 11:45
Я вроде бы всё подробно описал, спрашивая как обойтись без раскрывающегося списка.
Автор: Algofil
Дата сообщения: 11.03.2011 13:52

Цитата:
Я вроде бы всё подробно описал, спрашивая как обойтись без раскрывающегося списка.

Я вроде бы всё подробно описал, как получить результат без раскрывающегося списка. Он ни разу не раскрывается в моем варианте ))
Автор: JAndrei
Дата сообщения: 11.03.2011 16:00
Извиняюсь, спасибо, работает. Но тогда надо две руки задействовать, что ещё неудобнее, плюс ещё инструкцию для другого пользователя.
Автор: Algofil
Дата сообщения: 11.03.2011 17:01
согласен, это сильно зависит от привычки, я начинал в 1985 еще без всяких мышек, так мне удобнее Tab Enter NumPad Home End стрелки, чем три клика мышкой, да так чтобы никакие два из них не оказались даблкликом ))
Автор: Tutankhamon86
Дата сообщения: 14.03.2011 15:58
Добрый день

Пожалуйста подскажите как в MS Access загрузить таблицу с кодировкой ISO/IEC 8859-1 (также известная как ISO 8859-1 и Latin-1).
Для последующего редактирования и сохранения в той же кодировке
Автор: Algofil
Дата сообщения: 14.03.2011 16:17

Цитата:
Пожалуйста подскажите как в MS Access загрузить таблицу с кодировкой ISO/IEC 8859-1
С кодировкой понятно, а что есть таблица до загрузки в аксес?
Поэкспериментируем с текстом:
1. Создать БД
2. Новая БД
3. Файл-внешние данные-импорт
4. Выбрали тип файла-выбрали путь/имя файла
5. Дополнительно-Кодовая страница
Тут возможны варианты, если аксес отказывается признавать нужную Вам кодировку, попробуйте пересохранить исходник (родным для него редактором) в формате, более понятном аксесу
Автор: RioBravo
Дата сообщения: 01.04.2011 10:12
Помогите разобраться с проблемой. Есть кнопка для открытия вордового файла. Через раз вылетает ошибка 462 (The remote server machine does not exist or is unavailable 462). Если ворд висит запущенным, то ошибки нет. В чем может быть дело?

Цитата:

DIM oApp AS Object
DIM LWordDoc AS STRING
LWordDoc = [doc_link] '[doc_link] - поле с адресом файла
Set oApp = CreateObject(Class:="Word.Application")
oApp.Visible = True

Documents.OPEN fileName:=LWordDoc

Автор: Algofil
Дата сообщения: 01.04.2011 11:11

Цитата:
Если ворд висит запущенным, то ошибки нет. В чем может быть дело?

возможно в версии офиса, попробовать более ранние, чем новее офис - тем больше заморочек в форматах файлов. кроме того не повредит проверить настройку ODBC раз уж при открытом ворде проблем не возникает, а аксесу хочется воспринимать открываемый файл как файл БД... к серверу БД ему панимаешь надо коннектиться, чую скоро мелкомягкие начнут для открытия .csv файлов требовать сервера


Добавлено:
по тексту кода - настораживает "Word.Application" может надо "Word.Document"? Но если честно - к разработчику, может вспомнит о чем думал, раз уж каментить не научили
Автор: asbo
Дата сообщения: 01.04.2011 11:36

Код:
Sub sb_RioBravo
DIM oApp AS Object
DIM LWordDoc AS STRING
LWordDoc = [doc_link] '[doc_link] - поле с адресом файла
Set oApp = CreateObject(Class:="Word.Application")
oApp.Visible = True
oApp.Documents.OPEN fileName:=LWordDoc
End Sub
Автор: Mariya1001
Дата сообщения: 30.04.2011 11:43
Здравствуйте, у меня имеется 2 таблицы: Уроки, Оценки.
Пытаюсь сделать форму, в виде электронного журнала. Все данные в таблицу Оценки заносятся нормально, а в таблице Уроки только изменяет одну запись, добавить новые нельзя и если выбирать код урока из выпадающего списка пишет: "невозможно изменение элемента присоединенного к полю счетчика КодУрока".
Что делать? Помогите пожалуйста.
Автор: zarel
Дата сообщения: 10.05.2011 07:43
(Знакомый попросил сделать контрольную работу в аксесе, отдавать нужно уже послезавтра.... тоесть сделать нужно до вечера завтрашнего дня...)

Есть база данных, в ней две таблицы "модели автомобилей" и "клиенты и заказы".
В таблице "модели автомобилей" содержатся следующие поля:
код, код модели, модель, цвет, коробка передач, обивка, заводская цена.

Нужно создать запрос по таблице "модели автомобилей" , для отображения розничной цены на каждый автомобиль, которая на 15% выше заводской.

Честно говоря вообще не вкуриваю как это нужно сделать...
Точнее не понимаю следующее :
путем запроса в таблице создается новое поле закупочная цена , или же на основе поля заводская цена условием выборки получаем нужное значение ?

кто знает помогите, заранее благодарен...
Автор: SIgor33
Дата сообщения: 10.05.2011 08:11
zarel
А где поле с розничной ценой, а то чем сравнивать
Автор: zarel
Дата сообщения: 10.05.2011 08:14
[q][/q]
в том то и дело, что его нету, я и думаю что либо его создать нужно в таблице , либо на основании поля "заводская цена" сформировать в запросе...
(в задании не указано создавать поле "розничная цена")
ну допустим, есть поле розничная цена, как правильно будет создать запрос ?
Автор: AndVGri
Дата сообщения: 10.05.2011 09:20
zarel

Цитата:
"клиенты и заказы".

а здесь какие поля и значения? Возможно нужно ориентироваться на цену, по которой машина продана клиенту.
Автор: zarel
Дата сообщения: 10.05.2011 12:58
Для базы "Автомагазин" создать запрос по таблице "модели
автомобилей" , для отображения розничной цены на каждый
автомобиль, которая на 15% выше заводской

Собственно интересует как создать запрос в ms access 2010 или 2003 чтобы выводились автомобили с ценой выше заводской на 15%
Автор: asbo
Дата сообщения: 10.05.2011 13:43

Цитата:
Знакомый попросил сделать
Понимаю... У меня тоже один "знакомый" ни как не мог признаться в любви подруге своего детства...

Что-то хотелки у "знакомого" растут от поста к посту. Начинали с запроса с тремя неизвестными :) zarel, имо, бездельнику лучше сюда обраттиться.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: BDE - траблы, помогите пожалуйста срочно...


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.