При создании mde появляются ошибки - "Изменения не были внесены из-за повторяющихся значений в индексе, ключевых полях или связях...", затем ошибка "Текущая запись отсутствует". Неясно с чего стала возникать ошибка, в базе только связанные с сервером таблицы, схемы данных тоже нет. Сам mde создается и нормально работает. Куда копать?
При компилировании кода в проекте никаких ошибок нет.
Привет! Ситуация такая. Установил SQL 2000 на "сервере". Программа (Аксесс ХР) работает, базу видит. С других машин в сети подключиться к базе не могу. При подключении Сервер видит ( в перечилслении), а базы на нем (ни одну) НЕ ВИДИТ.
Для удобства ввода с планшета хочу сделать специальную всплывающую NumLock форму. Как узнать какая была предыдущая активная форма и где там лежал фокус?
Есть таблица, на основании её сделан параметрический запрос по полю "Твое_число". У каждого пользователя есть свое число (1,2 или 3). Надо сделать так, чтобы у пользователя, указавшего к примеру число 2 отображались только его данные (это уже сделано параметрическим запросом) и чтобы автоматически в поле "Твое_число" указалась его цифра, тобишь 2.
Пример БД во вложении.
Думал как это можно сделать в форме, так и не смог придумать((((
В главной форме во всех полях есть значения по умолчанию. Как можно сделать чтобы сразу можно было начинать ввод в подчиненной форме когда главная форма стоит на новой записи?
Создал форму на основании пяти таблиц (Клиент, Должность,Фамилия, Имя, Отчество) таблица Клиент имеет внешнюю связь с таблицами Должность, Фамилия, Имя, Отчество в отношении один ко многим, т.е. в таблице Клиент четыре поля со всплывающим списком. Подскажите пожалуйста, как прописать макрос или код VBA, что бы в форме вводя данные в поля Должность, Фамилия,Имя,Отчество одновременно автоматически вводились данные в эти же поля таблицы Клиент. Вариант с созданием отдельных форм на каждую таблицу (Должность,Фамилия,Имя,Отчество) не рассматриваю, так как не совсем удобно, в дальнейшем придётся создавать слишком много маленьких форм. Пробовал прописывать макрос на "Обновление", не получается.
Добрый день всем. Подскажите пожалуйста как решить следующую задачу: ------есть таблица "ЦВЕТА" с 4-мя столбцами НазваниеЦвета R G B ------есть таблица "Формула" со столбцами НазваниеЦвета компонент1 колво1 компонент2 колво2 компонент3 колво3
Связь 1 к 1 по ключу Название цвета. В форме таблицы Формула создаю поле, которое хочу закрасить цветом из таблицы "Цвета". Поискал по форуму, нашел что делается через backcolor и RGB. Не знаю как передать в RGB данные из столбцов R G B таблицы Цвета для активного (отфильтрованного до этого, или выбранного в форме названия цвета). Подскажите пожалуйста.
Здравствуйте, уже задала здесь вопрос, нужна еще помощь.. Подскажите, как сделать так, чтобы при импорте данных из .txt файла в Access, они взаимодействовали с уже имеющимися данными, хранящимися в таблице? Т.е. есть выбор – сезон, тип пути, участок, скорость, мощность, объект - они уже должны содержаться в таблице, а Частота, Амплитуда - заполняться с помощью txt файла. Пример импорта в Access брала с форума. Спасибо!
При попытке создать запрос на выборку данных добавляю таблицу sub_orders (подзаказы) и получаю только первое значение. а если в запросе INNER на Left результат "похож" только значение только в первой строке.
Хочу получить все детали pat_name входящие в сборки(part_as_name) входящие в перечень part_bom с требуемым количеством заказанные по дроби sub_order с требуемым количеством и все это Я слегка запутался
Цель - задать действие на получение фокуса сразу для всех полей формы (а не через свойства каждого поля). Код примерно такой, и он вызывает ошибку (функция работает правильно если её задавать через свойства отдельного поля)
PrivateSub Form_Current()
Dim Ctb As Control
ForEach Ctb InMe.Controls
SelectCase Ctb.ControlType
Case acTextBox
If Ctb.GotFocus = TrueThen' здесь ошибка "438" - не поддерживается свойствоCall esFocusInOut("Данные", True)
EndIfIf Ctb.LostFocus Then' здесь ошибка "438" - не поддерживается свойствоCall esFocusInOut("Данные", False)
EndIfEndSelectNext Ctb
EndSub
Понедельник, 27 Октября 2014 г. 18:54
+ в цитатник
Добрый вечер.
Написал запрос, проблема в том, что выполняется лишь один из внутренних запросов, стоящий после "IN". По отдельности оба работают. Что надо сделать, чтобы выполнялись оба внутренних?
+
SELECT EMITENT.IO_EMIT
FROM EMITENT, OPER, SERT_VIP
WHERE EMITENT.n_emit=SERT_VIP.n_emit AND SERT_VIP.N_VIP=OPER.N_VIP AND (OPER.DT_MOD BETWEEN #1/1/2000# AND #30/06/2000#)
AND OPER.KOD_OPER
IN
(SELECT OPER.KOD_OPER
FROM OPER
WHERE OPER.KOD_OPER=21GROUPBY OPER.KOD_OPER
HAVING (COUNT( OPER.KOD_OPER)>5)
)
AND
(SELECT OPER.KOD_OPER
FROM OPER
WHERE OPER.KOD_OPER=1OR OPER.KOD_OPER=23GROUPBY OPER.KOD_OPER
HAVING (COUNT( OPER.KOD_OPER)>10)
)
GROUPBY EMITENT.IO_EMIT
ORDERBY EMITENT.IO_EMIT;
Понедельник, 27 Октября 2014 г. 18:52
+ в цитатник
День добрый, уважаемые форумчане!
Давненько я не брал в руки аксеса. Задача такая в главной форме делаю ленточную подформу. В подчиненной форме поля формируются на основании запроса из 2 таблиц: справочник реквизитов и реквизиты клиента. Соответственно набор реквизитов со временем может меняться (как увеличиваться так и уменьшаться, да и просто сами реквизиты могут отмирать и вместо них появляться новые). Вот среди этих реквизитов есть как текстовые, так и логические, числовые, даты. Как бы мне так провернуть дело чтобы в случае логического поля появлялся список "Да/Нет", в текст соответственно текст, в поле с датой помещалась маска ввода даты?
В справочник поместить тип поля не проблема. а вот как на основании этого типа и перечня полей корректно форму сформировать, что то не соображу. Или вообще уходить от ленточной делать полностью форму кодом, но тогда вопрос по размерам и скроллам, т.к. список может быть относительно внушительным (до 40 реквизитов)
Понедельник, 27 Октября 2014 г. 18:10
+ в цитатник
Здравствуйте. Такая проблемка: не знаю как отсортировать данные в форме в зависимости от открытой вкладки. Подробнее: Есть форма в которую вставлен набор вкладок. В каждой вкладке одна и та же форма, но с разными фильтрами. Допустим открываю вкладку "Грузоперевозки", у меня в подчиненной форме автоматически должен выйти список где поле "Тип" имеет значение "Грузоперевозки". Открываю вкладку "Эксковаторы" - выводит список с эксковаторами ([Тип] = "Эксковатор")... В Запросе подчиненой формы в условиях отбора в поле [тип] написал Forms![Главная]![НаборВкладок0].Name - не работает.
Понедельник, 27 Октября 2014 г. 16:59
+ в цитатник
Помогите разобраться. Пишу условие: If Me.[Поле_1] <> DLookup("[Поле_1]", "[БД]", "[Поле_1]=[Поле_1]") Then Me.[Поле_1] = "лялялял" End Sub Даже если в БД нет таких записей то ничего не происходит. Если пишу If Me.[Поле_1] <> DLookup("[Поле_1]", "[БД]", "[Поле_1]=[Поле_1]") Then Else Me.[Поле_1] = "лялялял" End Sub То все срабатывает. Как правильно указать "<>" в выражении. (без Else) Спасибо!
Воскресенье, 26 Октября 2014 г. 16:19
+ в цитатник
Добрый день!
Подскажите пожалуйста, как выгрузить из данной таблицы все столбцы, но чтобы набор значений столбца "ЦЕНА" был без повторяющихся значений, чтобы были все уникальны
Давно не брал я шашек в руки, а задача была тривиальная - из кода заполнить таблицу числовыми значениями, идущими подряд. В таблице первичный ключ - это самое значение. Пытался добавлять через открытие ADO-рекордсета в цикле с известным нижним и верхним пределом. Алгоритм - если значение уже есть, пытаемся добавить следующее (по номеру ошибки делаем Resume Next) и т.д. до верхнего предела. Столкнулся с неведомой хренью - если первое значение вызвало эту ошибку (повторяющиеся значения уник. индекса), то все последующие в цикле ТАКЖЕ НЕ ДОБАВЛЯЮТСЯ в таблицу, хотя их там и нет. Уже голову сломал, где я ошибся. См. тестовый код. Если кто будет тестить, запускать процедуру Test и смотреть вывод в Immediate. Внесение rst.update в цикл ничего не изменило. Ясно, что какая-то примитивная ошибка - но я ее не вижу :-(
+
OptionCompare Database
OptionExplicitSub Test()
OnErrorGoTo EXCEPT
Call DropTable
Call CreateTable(NoKey:=False) 'создаем таблицу с первичным ключом' Call CreateTable(NoKey:=True) 'создаем таблицу без первичного ключаCall PopulateTable(1)
Call PopulateTable(2) 'по идее должна добавиться 1 запись в таблицу с ключом "4", но не добавляется
Debug.Print CurrentProject.Connection.Execute("SELECT n FROM d", adCmdText).GetString(, , , ";")
'смотрим, что получилосьCall ClearTable
EXIT_HERE:
ExitSub
EXCEPT:
SelectCase Err.Number
Case -2147217865 'таблица не существетResumeNextCase -2147217900 'таблица существуетResumeNextCaseElse
MsgBox "Произошла ошибка " & Err.Number & vbNewLine & " (" & Err.Description & ") "EndSelectResume EXIT_HERE
EndSubSub PopulateTable(ByVal n AsInteger)
Dim SQL AsString, rst As ADODB.Recordset, i AsIntegerOnErrorGoTo EXCEPT
SQL = "SELECT n FROM d WHERE 1=0"Set rst = New ADODB.Recordset
With rst
.Open SQL, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
For i = n To n + 2
.AddNew "n", i 'Err.number -2147217887 возникает даже если такого ключа еще нет'в случае, если она уже возникала на предыдущем шаге цикла. (Но Resume next сбрасывает ошибку (обязан сбрасывать))Next i
.Update
EndWith
EXIT_HERE:
OnErrorResumeNext
rst.Close
Set rst = NothingExitSub
EXCEPT:
SelectCase Err.Number
Case -2147217887 'повторяющиеся записиResumeNextCaseElse
MsgBox "Произошла ошибка " & Err.Number & vbNewLine & " (" & Err.Description & ") "EndSelectResume EXIT_HERE
EndSubSub CreateTable(Optional NoKey AsBoolean = False)
Dim SQL AsStringIf NoKey Then
SQL = "CREATE TABLE d (n INTEGER NOT NULL)"Else
SQL = "CREATE TABLE [d] ([n] INTEGER NOT NULL, CONSTRAINT d_pk PRIMARY KEY ([N]) )"EndIf
CurrentProject.Connection.Execute SQL, , adCmdText + adExecuteNoRecords
EndSubSub DropTable()
Dim SQL AsString
SQL = "DROP TABLE [d]"
CurrentProject.Connection.Execute SQL, , adCmdText + adExecuteNoRecords
EndSubSub ClearTable()
Dim SQL AsString
SQL = "DELETE * FROM d"
CurrentProject.Connection.Execute SQL, , adCmdText + adExecuteNoRecords
EndSub