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

» Access VBA

Автор: evle
Дата сообщения: 26.02.2006 11:56
Проблему свою решил, но не очень хорошим способом:

Код:
SELECT E.Man_ID, E.Event_ID
FROM Events E,
(
SELECT E1.Man_ID, E1.Event_date, Max(E1.[Order]) AS Max_Order
FROM Events E1,
(
SELECT Events.Man_ID, Max(Events.Event_date) AS Max_Date
FROM Events
GROUP BY Events.Man_ID
) E2
WHERE E1.Man_ID = E2.Man_ID AND E1.Event_date = E2.Max_Date
GROUP BY E1.Man_ID, E1.Event_date
) E3
WHERE E.Man_ID = E3.Man_ID AND E.Event_date = E3.Event_date AND E.[Order] = E3.Max_Order
GROUP BY E.Man_ID, E.Event_date, E.[Order], E.Event_ID
ORDER BY E.Man_ID
Автор: Demones
Дата сообщения: 26.02.2006 13:01
Имеется база учета вызовов на "Скорой помощи". Бумажные наряды заносят в Access. Каждому вызову соответствует свой уникальный номер. Иногда вырубают свет, комп глючит и т. д. и некоторые записи пропадают, а СЧЕТЧИК ПЕРЕСКАКИВАЕТ НА 1(единицу), то есть считает, что данные занесены. Получается, что тот номер, который пропал из базы, соответствует бумажному наряду, то есть один наряд оказывается незанесенным в базу. Каким образом восстановить этот номер, эту запись. ТО, что это можно сделать - абсолютно точно., но я не знаю как?
Автор: evle
Дата сообщения: 26.02.2006 13:12
Demones
Можно уладить шаманским методом: скопировать данные до пропущенного номера в новую таблицу, занести туда недостающую запись, скопировать остальные данные (запросами). Но лучше всё-таки не хранить номер наряда в виде счётчика, поскольку это не служебные данные.
Автор: Demones
Дата сообщения: 27.02.2006 00:02
Эту прогу написали сто лет назад. Поэтому сгодня надо выйти из положения, а потом посмотрим, доработаем...
Спасибо за ответ.
Подскажите, как "скопировать остальные данные (запросами)"?
Автор: evle
Дата сообщения: 27.02.2006 07:46

Цитата:
Подскажите, как "скопировать остальные данные (запросами)"?

Сначала пишем что-то типа

Код:
select * from <старая таблица> into <новая таблица> where <счётчик> < <глючная запись>
Автор: UncleYurka
Дата сообщения: 27.02.2006 16:55
Подскажите, плз, как поступить?

1. Есть две связанные таблицы (1 ко многои)
2. Есть форма для работы с главной таблице и подформа для работы с подчиненной.
3. Как проще сделать удаление записи из главной таблицы, если в подчиненной таблице нет записей, соответствующих этой записи главной таблицы.

С уважением, Юрий.
Автор: evle
Дата сообщения: 02.03.2006 16:53
UncleYurka
Открыть схему данных, сделать связь между таблицами, посмотреть на флажок "Обеспечение целостности данных".
Автор: MrZeRo
Дата сообщения: 03.03.2006 09:39
UncleYurka
У подчиненной формы воспользоваться событием "Удаление", например, чтобы попроще, сделать так:

Цитата:

DoCmd.RunSQL "DELETE FROM t1 WHERE NOT EXISTS(SELECT * FROM t2 WHERE t2.t1_id=t1.t1_id)"

Имеется в виду, что t1-ведущая таблица, t2-подчиненная, t1_id - значение первичного ключа ведущей таблицы.
Можно более оптимально сделать, если определить t1_id заранее. Из подчиненной формы это можно сделать как-то так(не ручаюсь за точность):

Цитата:

Me.Parent.Form.[t1_id]!

Автор: Stek
Дата сообщения: 21.03.2006 19:41
есть таблица с записями и форма.
Как сделать так, что бы при открытие формы из таблицы бралось определенное значение и присваивалось полю в форме.

Запрос построить проблем нет, скажем "SELECT id, book_name FROM books WHERE id = 1"

А вот каким образом в VB получить результат от запроса ?

Пытался через CurrentDb.Execute , никак не получается.
Автор: j7
Дата сообщения: 21.03.2006 21:07
Блокировка файла рисунка wmf. Как избежать?

Пробую сделать программу печати рисунков в формате wmf (Windows Meta File). Создаю отчет. Вставляю рисунок: Меню «Вставка» -> «Рисунок» -> “f:\План1.wmf” (например).
Меняю тип рисунка на «Внедренный». Цепляюсь за событие «Открытие отчета».
Там вставляю команду:
Рисунок0.Picture = Me.OpenArgs
А при открытии отчета через OprenArgs передаю название рисунка.
Просматриваю или печатаю.
Теперь, если закрыть отчет, файл wmf-рисунка на диске оказывается заблокированным, то его нельзя удалить. Не помогает даже закрытие mdb-файла. Рисунки особождаются только после закрытия Access’a. Что несколько неудобно.
Может кто встечался с проблемой, или знает путь решения, подскажите, пожалуйста.
Спасибо.
Автор: dneprcomp
Дата сообщения: 22.03.2006 20:22
j7
Не пробовал перед закрытием отчета присваивать Рисунок0.Picture другое(пустое - ?) значение?
Автор: Orakle
Дата сообщения: 23.03.2006 13:19

Помогите пожалуйста

Потерян и забыт пороль на БД
Срочно нужно найти способ войти в БД
Access 2000
поможет ли Office 97 Passord Recovery?
Спасибо
Автор: j7
Дата сообщения: 25.03.2006 03:06
dneprcomp

Цитата:
Не пробовал перед закрытием отчета присваивать Рисунок0.Picture другое(пустое - ?) значение?

После твоего совета попробовал. Не получилось.
Пробовал "", менял ссылку на другой файл - "заглушку" (в этом случае блокируются оба WMF).
Причем файл открывается и блокируется столько раз, сколько рисунок появляется на экране (принтере). Контролировал с помощью Iarsn TaskInfo. Access открывает файл (создает его handle), и этот файл так и остается открытым после "обнуления рисунка", закрытия отчета, закрытия MDB. Количество создаваемых Handlе'ов равно количеству показов (не только в режиме просмотра или печати, но и в режиме конструктора). Т.е. если я просмотрел (или напечатал) отчет с файлом "План1.wmf" пять раз, то этот файл будет открыт пять раз, и для него будет столько же хэндлов. Эти хэндлы закрываются с закрытием Access'a.
Такая беда проявтяется как с отчетом, так и с формой. Она не проявляется если WMF-рисунок - встроенный. Не проявляется с jpeg'ами.
Пробовал делать рисунок встроенный, а затем его переопределять. Снова блокируется. Короче, блокируется всегда при "позднем" связывании.

PS А у тебя получилось? Может это у меня Оffice кривой, хотя пробовал на трех компах с разными дистрибутивами (два - 2003SP1 офиса, один - 2002й - XPSP3 )
Автор: dneprcomp
Дата сообщения: 25.03.2006 05:24
j7
Я у себя вообще не пробовал Нет возможности. Похоже, что это свойство Access. Попробуй сделать абдейт. Может поможет. Если нет, можно попробовать освобождать средствами API.
Автор: konas
Дата сообщения: 27.03.2006 07:48
Здравствуйте
помогите создать в аксесе таблицу со структурой таблицы из Microsoft Sql Server
Cn.Open strconnect
Set rst = New ADODB.Recordset
strSQL = "RC"
Set t = b.CreateTableDef("dbo_" & strSQL)
rst.Open strSQL, Cn, , , adCmdTable
когда пытаюсь создать поля возникает ошибка при преобопазовании типов и условий на полях
.Fields.Append .CreateField(rst.Fields.Item(ii).Name, rst.Fields.Item(ii).Type)
ЧТО НЕВЕРНО? И КАК НАДО?
Автор: k1sa
Дата сообщения: 29.03.2006 12:05
В Access 2002 из .mdb файла создал .mde файл. Проблема такая - .mdb файл идет без каких-то проблем, а при работе .mde Access выдает сообщение типа:
The expression On Dbl Click you entered as the event property setting produced the following error: Function is not available in expression in query expression 'IIf(UCase(Per.sexcode)='V' Or Per.sexcode="",[Name],[Namef])'.
На сколько я понимаю это как-то связано с подключением библиотек. Но .mdb файл на том-же компе идет без проблем. В чем может быть проблема? помогите!
Автор: Angeli
Дата сообщения: 30.03.2006 06:15
Здравствуйте, помогите решить такую проблему: есть две таблицы t1 и t2 совершенно одинаковые с разными данными. Мне нужно t2 слить в t1
Автор: EZH
Дата сообщения: 30.03.2006 11:26
Angeli
Используй конструкцию типа

INSERT INTO t1(...) SELECT ... FROM t2

Если в таблицах есть поле счетчика, то его видимо не следует включать в перечень полей.

Автор: STEEL
Дата сообщения: 26.04.2006 21:17
Как внешний ключ создать?
Или как решить след задачу. Есть месяцы январь, февраль и т.п. , за каждым месяцем закреплена некая инфа. В клиенте необходимо по выбраному месяцу выдать инфу.
Автор: Portfel
Дата сообщения: 06.05.2006 08:56
День добрый,я вообще профан в аксесе...так что не судите строго
Вопрос в акксесе бд обрабатывает запрос корректно (на 98 винде)...
На XP тот же запрос (2000 аксес и там и там) выдает такую ошибку

'MsgBox (NameFile)
NameFile = "E:\VSS\IN\inctf01." + Mid("000", 1, 3 - ExtLn) + NameFile
DoCmd.TransferText acImportFixed, "ImpVSS", "VSS_IN", NameFile, False
(эту строчку дебагер выделяет)

Что это? (на всякий файлово папочная структура одинаковая)
Автор: MrZeRo
Дата сообщения: 06.05.2006 16:26
Portfel
Попробуй выполнить это действие вручную.
(импорт файла NameFile в таблицу VSS_IN при помощи спецификации ImpVSS).
Второй параметр в вызове DoCmd.TransferText - это имя спецификации экспорта/импорта, посмотри, есть ли она в списке спецификаций (открывается при импорте и нажатии кнопки "Дополнительно", потом "Спецификации")
Автор: Kat iynok
Дата сообщения: 09.05.2006 15:57
Добрый вечер, обращаюсь к Вам с такой просьбой, попросили меня написать программку на Access, вроде с ней разобралась, а вот одно не могу: как сделать чтобы нажимая на кнопку в форме у меня запрашивал логин и пароль. Мне надо чтоб на отдельные формы попадали отдельные люди. Каждая форма для отдельных людей скрывается за кнопкой. Может я не правильно выразилась. Но мне надо это как то сделать. В инете я вообще ничего по этому не нашла. Помогите советом пожалуйста.
Автор: dneprcomp
Дата сообщения: 09.05.2006 19:58
Kat iynok
1.Если делать буквально как описано в вопросе.
На нажатие кнопки первое что должно отработать - диалог бокс с запросом login name and pass. Если не совпадает, то пробуем еще пару раз или сразу прерываем процедуру без загрузки формы.
2.Если использовать access security.
В Access идем menu Tools-Security-'User-Level Security Wizard'
Автор: Kat iynok
Дата сообщения: 10.05.2006 08:44
dneprcomp

Я это всё пробовола, но это задаёт пароль на вход в базу саму, а мне нужно чтоб я уже зашла в базу, там формочка с кнопками, и накаждую форму задать пароль, т.к., это ограничит доступ к другим пользователям, этой проги
Автор: dneprcomp
Дата сообщения: 10.05.2006 09:41
Kat iynok
Тогда делай по 1
Автор: Portfel
Дата сообщения: 10.05.2006 10:01
MrZeRo
Значится давай по порядку...
Есть такая БД (100 кб)

Я делаю импорт вручную (банально Фаил-Внешние данные-Импорт).Захожу в нужную папку с файлами,а Аксесс не дает в выборе файла поставить опцию "Все файлы"...и соответственно выбрать не из чего (ибо нужные файлы расширение имеют в виде даты,и задается пред. строчкой <NameFile = "E:\VSS\IN\inctf01." + Mid("000", 1, 3 - ExtLn) + NameFile>),ну соответсвенно и спецификацию выбрать не могу (потому что импорт сделать не получается , а установить спецификацию можно только при импорте (еслия правильно тебя понял).
Автор: Kat iynok
Дата сообщения: 10.05.2006 10:52
dneprcomp
а Вы бы не могли бы мне подсказать как это сделать, а то я что-то не совсем понимаю, ну хотя бы какой нибудь примерчик. Пожалуйста, заранее спасибо.
Автор: dneprcomp
Дата сообщения: 10.05.2006 19:41
Kat iynok
Все, что может быть в примере, в твоей базе уже есть. Формы, кнопки, открытие-закрытие форм по нажатию... Дело не в примере, а в алгоритме. Создаешь еще одну форму для логина. Вместо формы можно использовать два последовательных InputBox, но это будет не эстетично В базу добавляешь table с полями для login name, pass и имя формы. Со своей первичной формы с кнопками в код каждой кнопки первым ставишь вызов лог-формы. Параметр AcWindowMode ставишь в acDialog. Данные из текст-боксов лог-формы на закрытие передаешь в переменные, доступные для всех процедур Command_Click. Затем проверяешь лог-пасс. Если для данной формы/кнопки совпали, то вызываешь соответсвующую форму. Если нет, то по своей фантазии. Можешь дать сообщение, можешь игнорировать, можешь запрашивать пароль еще раз или бесконечно до посинения юзера


Автор: Topik
Дата сообщения: 11.05.2006 04:32
Добрый день!

Имеется файл с расширением fdb (база данных).
С помощью каких утилит или примочек можно импортировать в Access, т.к. штатными средствами это неполучается?
Автор: dneprcomp
Дата сообщения: 11.05.2006 04:52
Topik
А точно ли это база данных?
filext.com говорит, что файл от Art Explosion Portfolio Catalog. _http://filext.com/detaillist.php?extdetail=FDB

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

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


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