Разбирался я с подобной проблемой лет 10 назад. Решения не нашёл. Суть тогда была примерно следующая. В момент внесения изменений в таблице драйвер блокирует запись, - не важно, какие там настройки, именно в момент физического изменения состояния текущей записи блокировка всегда есть. Причём драйвер блокирует не одну текущую запись, а некий "кластер", куда попадают и соседние нередактируемые в данный момент записи. Тогда (MSO-97) могли комфортно работать с одной таблицей не более восьми пользователей.
» Про MS Access
aberesnev
http://office.microsoft.com/en-us/access-help/about-sharing-an-access-database-on-a-network-mdb-HP005240860.aspx
http://www.databasedev.co.uk/multi-user-application-record-locking.html
http://bytes.com/topic/access/answers/638493-record-lock-db-lock
http://www.google.com/#hl=en&sugexp=ldymls&xhr=t&q=ms+access+lock+record&cp=16&pf=p&sclient=psy&aq=0&aqi=&aql=&oq=ms+access+lock+r&pbx=1&fp=cf43155e95cc3965
http://office.microsoft.com/en-us/access-help/about-sharing-an-access-database-on-a-network-mdb-HP005240860.aspx
http://www.databasedev.co.uk/multi-user-application-record-locking.html
http://bytes.com/topic/access/answers/638493-record-lock-db-lock
http://www.google.com/#hl=en&sugexp=ldymls&xhr=t&q=ms+access+lock+record&cp=16&pf=p&sclient=psy&aq=0&aqi=&aql=&oq=ms+access+lock+r&pbx=1&fp=cf43155e95cc3965
Спасибо, буду изучать
Помогите пожалуйста........ На дипломную работу задали в Access разработать программу..... которая выполняет такие действия...... В одну строку я ввожу Текст... например "Подразделение наступает на рубеже " в другой строке у меня автоматически должно отобразиться определенное число.... И наоборот.... Просидел уже неделю толком ничего не выходит !!!
Есть таблица расстояний между точками вида
А1 А2 300
А2 А3 150
А3 А10 138
Нужно по вводу двух точек, например А1 и А10 получить 588
Подскажите в какую сторону копать, чтобы получить такой результат
А1 А2 300
А2 А3 150
А3 А10 138
Нужно по вводу двух точек, например А1 и А10 получить 588
Подскажите в какую сторону копать, чтобы получить такой результат
easy_y
и что, у точек именно имена? И там обязательно порядковые номера?
я думаю, что нужно:
1) писать функцию (хоть на VBA, хоть на SQL) которая из имени точки достаёт номер точки (в виде числа)
2) ну и а дальше банальный запрос вида:
Код: select sum(Расстояние) form table1
where фунцияНомераТочки(НачальнаяТочка)>=1 and фунцияНомераТочки(конечнаяТочка)<=10
и что, у точек именно имена? И там обязательно порядковые номера?
я думаю, что нужно:
1) писать функцию (хоть на VBA, хоть на SQL) которая из имени точки достаёт номер точки (в виде числа)
2) ну и а дальше банальный запрос вида:
Код: select sum(Расстояние) form table1
where фунцияНомераТочки(НачальнаяТочка)>=1 and фунцияНомераТочки(конечнаяТочка)<=10
Пытаюсь открыть dbf-файл с помощью MS Access 2003, однако он требует открыть еще файл индекса dBASE (*mdx , *ndx). У меня этого файла нет. Подскажите, чем и как можно открыть этот dbf-файл? Как восстановить файл индекса?
RuPurple, ни одного dbf нет под рукой. Выложи, если не совсекрет.
RuPurple
если дружите с hex редактором -
в DBF файле по смещению 0x1C (28) _СЧИТАЯ_ от нуля у Вас находится байт 01
это признак наличия индексного файла.
Обнулите этот байт.
разумеется, делать надо всё на копии файла.
Либо, если есть FoxPro - откройте этот файл в фоксе - он предложит очистить привязку к индексу.
если дружите с hex редактором -
в DBF файле по смещению 0x1C (28) _СЧИТАЯ_ от нуля у Вас находится байт 01
это признак наличия индексного файла.
Обнулите этот байт.
разумеется, делать надо всё на копии файла.
Либо, если есть FoxPro - откройте этот файл в фоксе - он предложит очистить привязку к индексу.
SERGE_BLIZNUK
Обнулил байт по адресу 0x1C, как Вы написали. База открылась. Большое спасибо!
Интересно, зачем этот индекс был нужен.
asbo
Не то чтобы там был совсекрет, но документ типа "после прочтения сжечь"
Обнулил байт по адресу 0x1C, как Вы написали. База открылась. Большое спасибо!
Интересно, зачем этот индекс был нужен.
asbo
Не то чтобы там был совсекрет, но документ типа "после прочтения сжечь"
RuPurple,
ну это еще нормально. Вот если бы "перед прочтением сжечь", тады ой :)
Хорошо, что сработал метод. Надо будет взять на заметку.
ну это еще нормально. Вот если бы "перед прочтением сжечь", тады ой :)
Хорошо, что сработал метод. Надо будет взять на заметку.
Цитата:
База открылась. Большое спасибо!
вот и славненько! пожалуйста.
Цитата:
Интересно, зачем этот индекс был нужен.
надеюсь, что вопрос риторический?!...
Вообще, индексы нужны для ускорения доступа к данным (быстрого получения нужных данных), для связывания таблиц друг с другом (построения реляций), для обработки (и вывода) данных в определённом порядке (order by...)...
в особо извращённых случаях в индексные выражения могут быть включены функции (в т.ч. UDF) и поля других таблиц... Но это уже приёмчики на грани фола!
Хочу в списке таблиц нажать правой кнопкой на прилинкованную таблицу и пунктом котекстного меню открыть ее в первоисточнике (ну или ее базу mdb хотя бы) в другой копии Access.
Пункт меню я вставлю. Процедуру обрабатывающую назначу etc. А вот как получить имя таблички, на которой я правой кнопкой нажму?
Пункт меню я вставлю. Процедуру обрабатывающую назначу etc. А вот как получить имя таблички, на которой я правой кнопкой нажму?
Цитата:
Процедуру обрабатывающую назначу etc
возможно, я скажу несусветную глупость, но я бы начал с того, чтобы посмотрел на эту самую процедуру - очень велика вероятность, что в неё передаётся объект, на котором и произведено нажатие..
SERGE_BLIZNUK, дык, нет еще никакой процедуры :) Я же не знаю имени таблицы, на которой я жму правой кнопкой. Кто и как мне его (имя) может вернуть? Вот в чем вопрос... Будет имя - буду процедуру писать.
Хочу скопировать таблицу из первой базы в третью кодом из второй. Но как?
Через вторую с подскоком 1 - 2 -3 не подходит.
Считать структуру tdf из 1, воссоздать в 3 и перегнать данные запросом - тоже знаю.
Неужели нет какой-нибудь волшебной команды?
Через вторую с подскоком 1 - 2 -3 не подходит.
Считать структуру tdf из 1, воссоздать в 3 и перегнать данные запросом - тоже знаю.
Неужели нет какой-нибудь волшебной команды?
Привет всем. Нужна Ваша помощь. В общем дали 2 базы access(mdb), тесты связанные с работой. Будут в пятницу проверять, у друга открывалась база, то есть все нормально сидел решал тесты, взял к себе на компьютер, открываться, но когда перехожу к тестам, тупо ничего не работает и нельзя закрыть окно, приходится закрывать через диспетчер задач. Макросы все включены. Прошу помощи. Вызывал и друзей и программистов, понять не могут. Базы прилагаю http://www.sendspace.com/file/z505wg . Надеюсь на Вашу помощь. Спасибо!!!
Мне говорит: "Ваше обучение закончено. Пока!"
Окна закрываются, только проц она грузит при этом малехо.
Она не защищена. Запускать с шифтом можно. Код доступен. Нужен только энтузиаст, чтобы разбираться в этой поделке :)
Думаю, что друг подзавалил их у себя. Лучшее решение - надо взять оригиналы, если доступны.
Окна закрываются, только проц она грузит при этом малехо.
Она не защищена. Запускать с шифтом можно. Код доступен. Нужен только энтузиаст, чтобы разбираться в этой поделке :)
Думаю, что друг подзавалил их у себя. Лучшее решение - надо взять оригиналы, если доступны.
Имеем заполненyю некоторыми данными (фамилия, адрес) таблицу Access 2003. Нужно распечатывать наклейку каждый раз с денными только из одной выделенной мышью строки. Как организовать запрос так, чтобы в сконструированную форму печати наклейки передавались данные только для этой выделенной строки, либо открывалось окно, куда для поиска нужной строки вводить фамилию ?
Добрый вечер! Очень нужна помощь.
Работаю с Access 97. Нужно было из одной таблицы базы вытянуть данные для другой, и результат сохранить в третьей.
В итоге при создании финальной таблички выскочила ошибка про несовпадение типов данных. И действительно, в 1-ой таблице связанное поле оказалось текстовым, вместо числового. Я сменила тип данных в том поле, и при сохранении таблицы Access вылетел (приложение будет закрыто и т.д.). При попытке открыть 1-ую таблицу, изменить название, удалить происходит вылет.
Уверена, дело в моих кривых руках, хотелось бы понять, в чем косяк. Спасибо.
Работаю с Access 97. Нужно было из одной таблицы базы вытянуть данные для другой, и результат сохранить в третьей.
В итоге при создании финальной таблички выскочила ошибка про несовпадение типов данных. И действительно, в 1-ой таблице связанное поле оказалось текстовым, вместо числового. Я сменила тип данных в том поле, и при сохранении таблицы Access вылетел (приложение будет закрыто и т.д.). При попытке открыть 1-ую таблицу, изменить название, удалить происходит вылет.
Уверена, дело в моих кривых руках, хотелось бы понять, в чем косяк. Спасибо.
Как извлечь длинный текст из поля типа Memo? Желательно не прибегая к длинным VBA макросам.
Сейчас он обрезается в отчётах до 255 символов. И то же самое происходит даже при копировании таблицы руками во временную таблицу.
Здравствуйте! Возникла задача сделать базу данных в access сетевой и желательно что бы это работало через браузер! Возможно ли это провернуть если да то подскажите как это можно сделать!
Цитата:
Здравствуйте! Возникла задача сделать базу данных в access сетевой и желательно что бы это работало через браузер! Возможно ли это провернуть если да то подскажите как это можно сделать!
proskurin_MIHAIL1990
Столбец1), нечисловой тип данных суммируемых полей, нетуда было вставлено SQL-выражение запроса. Но раз уж ИТОГО нужно именно в таблице, привожу подробную инструкцию (без SQL-выражений - с ними, похоже, проблема).
1. Если в таблице уже есть записи, открываем конструктор запросов и добавляем в него нашу злосчастную таблицу. Вставляем в бланк запроса лишь поле ИТОГО, хотя можно и все - роли не играет. В меню "Запрос" выбираем "Обновление". В бланке запроса в столбце поля ИТОГО в строке Обновление вводим
[Поле1]+[Поле2]
Нажимаем "Запуск" (!) и подтверждаем свои намерения. Проверяем результат.
Если таблица изначально пуста - пункт 1 можно пропустить, это была лишь подготовка таблицы к эксплуатации.
2. В окне базы выделить название таблицы -> Панель инструментов -> Новый объект -> Автоформа, либо в своей форме привязать итоговое поле к полю ИТОГО таблицы.
В режиме конструктора формы открыть свойства любого поля, входящего в сумму (Поле1 или 2), выбрать вкладку События, строку "После обновления", в ней из списка "Процедура..." и нажать кнопку "...". В тело процедуры, тоесть между строками "Private Sub..." и "End Sub", вписать строку:
[ИТОГО] = [Поле1] + [Поле2]
Аналогично поступить со вторым полем и вставить в его процедуру это же выражение.
ВНИМАНИЕ! В обоих пунктах необходимо использовать СВОИ названия полей.
Этот способ будет работать только если заполнять таблицу и изменять данные в ней только через форму.
Всем привет!
А может ли ктото ответить вот на такой вопрос:
мне нужно сделать карточку выдачи инструмента работнику.
В чём (форма или отчёт) нужно по-правильному делать ?
Потому что у меня не совсем получается. Если делаю с помощью формы, то список там создаётся ввиде листвью, и если товаров много, то он получается с прокруткой. А как такую страницу вывести на печать. Если делаю с помощью отчёта, то выдаются ВСЕ записи, а не конкретной карточки. А нужно вот так чтобы было:
----------------------------------------------------------------
Работник: Иванов И.И.
Список выдаваемого инструмента:
1. Молоток 1шт.
2. Плоскогубцы 1шт.
3. Рукавицы 4шт.
Всего количество: 6шт.
----------------------------------------------------------------
Список выдаваемого инструмента не постоянный, и может содержать любое количество. Но при печати должен быть виден весь.
А может ли ктото ответить вот на такой вопрос:
мне нужно сделать карточку выдачи инструмента работнику.
В чём (форма или отчёт) нужно по-правильному делать ?
Потому что у меня не совсем получается. Если делаю с помощью формы, то список там создаётся ввиде листвью, и если товаров много, то он получается с прокруткой. А как такую страницу вывести на печать. Если делаю с помощью отчёта, то выдаются ВСЕ записи, а не конкретной карточки. А нужно вот так чтобы было:
----------------------------------------------------------------
Работник: Иванов И.И.
Список выдаваемого инструмента:
1. Молоток 1шт.
2. Плоскогубцы 1шт.
3. Рукавицы 4шт.
Всего количество: 6шт.
----------------------------------------------------------------
Список выдаваемого инструмента не постоянный, и может содержать любое количество. Но при печати должен быть виден весь.
Джентльмены, я свои соображения ао старой памяти высказал здесь. Но я давно уже подобных решений не практиковал, может кто и поправит. Вдруг что-то не так сформулировал :)
судя по всему вопрос напряжный...
я изготовил тестовые данные, там таблицы, запрос, форма...
что требуется:
при вводе в форме значения, чтобы генерировался отчёт на базе указанного значения на форме. не могу понять, как сделать динамический запрос, подставить, так сказать, в запрос значение.
http://narod.ru/disk/26022839001/test2.rar.html
я изготовил тестовые данные, там таблицы, запрос, форма...
что требуется:
при вводе в форме значения, чтобы генерировался отчёт на базе указанного значения на форме. не могу понять, как сделать динамический запрос, подставить, так сказать, в запрос значение.
http://narod.ru/disk/26022839001/test2.rar.html
filemoto
Я не могу твой файл открыть - 2003 у меня. И тема, к сожалению, еле дышит - за 7 лет 29 страниц :(
Попробуй вот сюда ткнись. Там плотно спецы сидят.
Я не могу твой файл открыть - 2003 у меня. И тема, к сожалению, еле дышит - за 7 лет 29 страниц :(
Попробуй вот сюда ткнись. Там плотно спецы сидят.
filemoto
Читай про RowSource, например типа того:
Запрос.RowSource = "SELECT Поле1, Поле2 FROM Таблица WHERE ID=1 OR ID=2"
Читай про RowSource, например типа того:
Запрос.RowSource = "SELECT Поле1, Поле2 FROM Таблица WHERE ID=1 OR ID=2"
Страницы: 12345678910111213141516171819202122
Предыдущая тема: Как замедлить скорость чтения CDROM?
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.