Делаю задачу по созданию БД. И не могу найти, можно ли сделать несколько полей на одной строке, допустим где № заказа 11356, а в дате выполнения и других столбцах несколько значений, но все они в разных ячейках. Вообщем вопрос - как сделать эти несколько ячеек на одной строке?
Добрый день! Не могу решить проблему с комбобоксом. Access 2003, WinXP и Win7 Создаю на форме combobox. Данные - запрос ID, FIO, Birthday, ID - 0 ширины Начинаю писать "Ива" - в поле первая из списка Иванова, другие Ивановы идут следом. Всё работает отлично, пока не закрыть и вновь открыть БД. После повторного открытия БД вводишь "Ива" - в поле "Ива", при раскрытии списка - в верхнем положении, при выходе из контрола - "Введённый текст не соответствует ни одному элементу списка". Глюк, фича или моё недопонимание?
Прошу помочь со следующим запросом! В наличии две таблицы (условно - станции и объекты) с аналогичным содержимым: id, название, координата х, координата у Задача - получить таблицу расстояний (с выражением проблем нет), где строки - станции, столбцы - объекты
В этих таблицах присутствует связь, но для этого запроса она не нужна - мне нужно получить все возможные результаты. Пока что получается вывести только связанные строки :(
Добрый день. Может кто сталкивался. Нужно список документов которые могут быть у человека с целью подтверждения личности с разбивкой по странам. И маска (InputMask) номера документа. Где взять? Спасибо.
Доброго дня. Занимаюсь нормализацией консолидирующей базы, которая собирает в себя данные еще с ~30 баз. Вопрос: каким образом лучше выстроить серию запросов, чтобы во время консолидации данных скорость работы была максимальной быстрой, а масшабирование удобным? Возникли следующие мысли: 1. Собирать юнионом данные из локальных таблиц; (медленно + последующие запросы будут обновлять изначальный юнион) 2. Создать серию запросов на добавления свежих данных в промежуточную таблицу в консолидирующей базе; 3. Создать в консолидирующей базе залинкованные с локальными базами таблицы из которых в последующем строить юнион.
Кратко: нужно собрать данные в единой структуре из 30 баз в одну максимально быстро, удобно и чтобы это еще и было гибко для масштабирования.
Access использует внешние таблицы через ODBC Таблицы расположены на MySql
Как сделать в форме сценарий для ввода в поле нескольких значений? Сценарий 1. Набираем с клавиатуры несколько символов меток 2. Access предлагает наиболее подходящие для набранных символов метки из справочника (см. скрин) 3. По средствам стрелок клавиатуры выбираем из списка необходимую позицию. 4. Нажимаем "Ввод". 5. По средствам нажатия "Ввод" позиция заносится в поле. После позиции ставится знак разделителя. "," (запятая) например. 6. Набираем следующую позицию. 7. Цикл повторяется. См. п.2 - п.6.
Данный макрос должен считать к-во записей существующей таблицы "Заказы" с форматом времени в поле "Дата заказа", при этом сравнивая ли они меньше чем сегодняшняя дата, вдобавок я подкорректировал условие - прибавляю к каждой записи 5 дней и сравниваю с сегодняшней. Почему выбивает ошибку о несоответствии, подскажите!
Sub XSD_Validation()
Dim xmlDoc As MSXML2.DOMDocument60
Dim objSchemaCache AsNew XMLSchemaCache60
Dim objErr As MSXML2.IXMLDOMParseError
objSchemaCache.Add "http://www.w3.org/2001/XMLSchema", LoadXmlFile("D:\Val\MP\MP_v06.xsd")
Set xmlDoc = LoadXmlFile("D:\Val\GKUZU_22367C5E-8E04-4806-9AED-5476E148D1B2.xml")
Set xmlDoc.Schemas = objSchemaCache
Set objErr = xmlDoc.Validate()
If objErr.errorCode = 0 Then
Debug.Print "No errors found"Else
Debug.Print "Error parser: " & objErr.errorCode & "; " & objErr.reason
EndIfEndSubFunction LoadXmlFile(Path AsString) As MSXML2.DOMDocument60
Set LoadXmlFile = New MSXML2.DOMDocument60
With LoadXmlFile
.async = False
.validateOnParse = False
.resolveExternals = False
.Load Path
EndWithEndFunction
В результате получаю такое сообщение:
В архиве xml-схема и xml-файл. Понимаю, что схема ссылается на под-схемы, а как их добавить не знаю.
Здравствуйте, прошу помощи в создании формы Примечание. У меня Access 2010, база сделана на основе Борей 2007.
Изначально скопировал форму из стандартного шаблона веб-базы контакты - в таком варианте все прекрасно работает.
А теперь нужно сделать такую как в веб-базе Вопросы
Задача: 1) пользователь со своего именя заходит в таблицу с контактами 2) заходит в личную карточку контакта 3) пишет в поле примечания 4) это сообщение выводится от его имени как на картинке 2 5) Имя пользователя брать с таблицы с сотрудниками.
Т.е. в примечание должно отображаться "Имя пользователя, примечание, дата." По ссылке - сама база: заходите в форму "Список Хозяйств"
Подскажите пожалуйста, как сделать запрос на обновление столбца Дата1 в таблице Осн из таблицы Доп, при следующем условии: INN совпадает и поле с Фио и там и там одинаковые. Спасибо
Ведёт организация базу документооборота в Access. Все бы ничего, но вот тот кто её проектировал не стал заморачиваться с хранением на диске в папках имена которых являлись бы уникальным индексом, а настроил на хранение документов во Вложении Attachment . Понятно дело свои минусы в виде возможного роста базы до 2 гб присутствует, но до этого ещё пара десятилетий должна пройти. Но в данный момент всех это очень устраивает и всем это очень нравится. Хозяин барин, работаем с тем что есть. Понадобилось в итоге скопировать часть данных в другую таблицу. В итоге проблема естественно в копировании вложений. INSERT INTO тут не помощник. В итоге озадачился написанием и заодно поиском подходящего материала на просторах сети. В итоге ничего стандартного в виде LoadFromFile и SaveToFile не нашлось. Копирование и вставка через временный файл на диске совсем некрасивый вариант.
В ниже приведенном коде, 1-ый и 2-ой блок по отдельности работают, но как только пытаюсь их вместе включить, появляется следующая ошибка "Object variable or With block variable not set". Не понимаю, что здесь может мне мешать.
Private Sub cmd_add_Click()
+
PrivateSub cmd_add_Click()
OnErrorGoTo Er
Dim idpath AsString
idpath = Forms![gamokvleva_add]![idpatient_history]
Dim t As Currency
t = Nz(DMax("nomer", "dbo_baza", "id_patient_history=" & idpath), 0) + 1
' ---------------------------------------- 1-ый блокCall OpenProcSql_In
If (Forms![gamokvleva_add]![check_other] = -1) Then
qdf.SQL = "Exec proc_insert_baza_1 @idpathistory=" & idpath & ", @nomer=" & t & ", @idregtest=" & Me.id_registration_test
Else
qdf.SQL = "Exec proc_insert_baza_2 @idpathistory=" & idpath & ", @nomer=" & t & ", @idregtest=" & Me.id_registration_test
EndIf
qdf.ReturnsRecords = FalseCall OpenProcSql_Out
' ---------------------------------------- 2-ой блокCall OpenProcSql_In
If Forms![gamokvleva_add]![numsqesi] = 1 Then
qdf.SQL = "EXEC proc_insert_bazapatienttests_1 @idpathistory=" & idpath & ", @idregtest=" & Me.id_registration_test
Else
qdf.SQL = "EXEC proc_insert_bazapatienttests_2 @idpathistory=" & idpath & ", @idregtest=" & Me.id_registration_test
EndIf
qdf.ReturnsRecords = FalseCall OpenProcSql_Out
' ---------------------------------------- Call OpenProcSql_In
Dim rst As DAO.Recordset
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_summa_idpathistory_fasi")
qdf.SQL = "EXEC proc_summa_idpathistory_fasi @idpathistory=" & idpath
qdf.ReturnsRecords = TrueSet rst = qdf.OpenRecordset(dbOpenSnapshot)
Dim dsumma As Currency
dsumma = rst.Fields(0)
Call OpenProcSql_Out
Dim t1 As Currency
t1 = dsumma - (dsumma * (Nz(Forms![registratura_newedit]![procent]))) / 100
Call OpenProcSql_In
If (Nz(Forms![registratura_newedit]![procent]) = 0) Then
qdf.SQL = "EXEC proc_update_gamokvleva_add_1 @idpatienthistory=" & idpath & ", @salarostanxa=" & t1
Else
qdf.SQL = "EXEC proc_update_gamokvleva_add @idpatienthistory=" & idpath & ", @salarostanxa=" & t1
EndIfCall OpenProcSql_Out
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs("sproc_select_baza")
qdf.SQL = "EXEC proc_select_baza @idpathistory=" & idpath
qdf.ReturnsRecords = True
Forms![registratura_newedit]![registratura_newedit_subform].Form.RecordSource = "sproc_select_baza"
Forms![registratura_newedit]![salaros_tanxa].Requery
Forms![registratura_newedit]![baratis_tanxa].Requery
Ex: ExitSub
Er: MsgBox Err.Description
Resume Ex
EndSub
OpenProcSql_In /// OpenProcSql_Out
+
Public qdf As QueryDef
Public frm As Form
Public dbsReport As DAO.Database
Public rstReport As DAO.Recordset
Function OpenProcSql_In()
qdf.Connect = "ODBC;" & _
"Driver={SQL Server Native Client 11.0};" & _
"Server=SQL;" & _
"Database=HHHHH; UID=SSS; PWD=PPPPPPPPP;" & _
"Trusted_Connection=yes;"EndFunctionFunction OpenProcSql_Out()
qdf.ReturnsRecords = False
qdf.Execute dbFailOnError
Set qdf = NothingSet dbsReport = NothingEndFunction
Весь день гуглил, но не нашёл решение для своей проблемы. Может кто сталкивался?
На одной машине установлена 2 версии Access: 2003 и 2010 (32-битный). Каждый раз когда переключаюсь с одной версии на другой, Access начинает регистрироваться на компьютере, что приводит к существенным задержкам запуска и становится неприемлемым. Конечно можно установить на компьютере виртуальную машину и туда устанавливать вторую версию. Но такое решение для меня неприемлемо по ряде причин. Как выйти из положения?
Нужна помощь, разрабатываю БД телефонного справочника, с которой потом буду делать приложение в VS. Подскажите, правильно ли она составлена на данный момент? Это большая организация с несколькими дочерними, которые находятся на разных адресах, сейчас в базе видно, что на каждом адресе находятся несколько организаций, в каждой организации несколько отделов, там собственно работают разные люди, НО помимо того, что на одном адресе сидит несколько организаций, одна организация тоже может быть на нескольких адресах, не могу понять, как это увязать, заранее спасибо тем, кто поможет
Всем привет! Макросом импортирую таблицу из первого листа Excel. В обкатке все работает, а как дошло до дела - затык. Суть в том, что мне нужно импортировать данные именованного диапазона, например "table1" на "ЛистХ" Добавил к оператору TransferSpreadsheet название таблицы, выдает ошибку 3011:
Пишу функцию импорта данных с листа таблицы Excel в БД Access из кода VBA. Если указать HDR=Yes и вместо F1 имя колонки в Excel, то данные отлично импортятся, если же оставить как есть, то возникает ошибка Неизвестное поле F1. Как думаете, в чём может быть причина. Excel 2016, в предыдущих версиях вроде работало раньше, но сейчас нет возможности проверить.
ExcelPath = "[Excel 12.0 xml;HDR=No;IMEX=1;DATABASE=C:\Мой_файл.xlsx]"
ExcelRange = "[Лист1$A2:A6]"
DoCmd.RunSQL "INSERT INTO [MyTable] SELECT * FROM " & ExcelPath & "." & ExcelRange & " WHERE [F1] Is Not Null"
Здравствуйте! Я почти ноль в SQL запросах, но на работе возникла необходимость составить один запрос. Прошу, помогите!
Есть таблица:
КАТЕГОРИЯ РЕКЛАМОДАТЕЛЬ А РД_1 А РД_2 А РД_1 Б РД_3 Б РД_2 В РД_1
Можно ли составить запрос, который бы вывел рекламодателей (в одном столбце) и их "долю голоса" (в другом столбце). Т.е. нужно вывести рекламодателя и то, сколько раз он встречается в выгрузке, согласно ограничениям.
Пример: Для Категории "А", его доля равно 66%(2/3). А РД_1 66% А РД_2 66% А РД_1 66%
Для всей таблицы доля РД_1=50%(3/6), А РД_1 50% А РД_2 33% А РД_1 50% Б РД_3 17% Б РД_2 33% В РД_1 50%
Наверно должно быть что-то в этом духе, но у меня конечно же не работает: SELECT РЕКЛАМОДАТЕЛЬ, COUNT(РЕКЛАМОДАТЕЛЬ) FROM Таблица WHERE КАТЕГОРИЯ="A"
Нашёл рабочий файл, в котором сделан вход в базу по логинам и паролям. Проштудировал код, вроде всё понятно(он с описание).
Перенёс его в новый документ и сделал всё тоже самое, но почему-то при открытие его сразу открываются все формы и таблица.
И подскажите ещё пожалуйста, как сделать так, чтобы при заходе под Администратором открывались все формы и весь интерфейс становился открытым. Я так понимаю, что-то в настройках самого файла надо поправить потому, что таблицы и формы в новый файл скопировал.