как создать запрос access мож кто знает если ясаков прошел 180 осмотр в 11 столбце а чем сообщит цифра 180 то выводилось бы автоматом как дубли эти специальности 20,25,26,27,50 то есть приравнять 180 к 20,25,26,27,50 может дополнительные параметры ввести
Я считал что при загрузке базы сначала выполняется макрос autoexec, а потом грузится форма, указанная в параметрах загрузки базы. И вот столкнулся с такой вещью. У меня в autoexec вызываются несколько функций, а те в свою очередь вызывают другие функции. И получается, что autoexec ещё не отработал, а форма уже загрузилась.
У меня должны в autoexec выполниться следующие проверки - наличие пути к удалённой базе - наличие самой удалённой базы - отсутствие подключенных пользователей к удалённой базе.
В случаи невыполнения очередной проверки выводится MsgBox с сообщением об этом и работа оканчивается. Но у меня выводится загружаемая форма, а поверх её висит этот MsgBox с сообщением об ошибке. Странно это.
------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
Сделал текстовый фильтр, но не получается сделать его так, чтобы я мог записывать в ячейку несколько слов, через пробел, и вторая проблема, если я пишу в ячейке слово, которого нет, то вылетает ошибка кода, как сделать так чтобы в форме просто не показаловалось бы записей?
Доброго времени суток форумчане. Может кто подсказать про ADP проекты Access. Досталась по наследству, от предыдущего админа база данных, но с выходом 2013 офиса стало невозможно ее использовать. И возникла необходимость преобразования ее к новому формату. В связи с этим возник ряд вопросов на которые хотелось бы найти ответы. 1. Я так понял, что в проектах ADP все объекты хранятся на SQL (включая формы). Так ли это? 2. Если так, то я экспортом перенес объекты (формы, отчеты, модули). Таблицы надо просто связать с проектом? 3. Как быть с остальными объектами которые не переносятся? Написать заново? 4. Что делать с функциями и чем они отличаются? (см. скрин) 5. Что делать со схемами данных (и почему их 5 шт) (см. скрин) Премного благодарен за будущую помощь.
Имеется база данных, созданная в access 2007 в формате mdb, благополучно существующая на одной машине. Однако попытка открыть копию этой базы на другой машине заканчивается неудачно: "Нераспознаваемый формат базы данных". Сначала пытался открыть ее в access 2003 - неудачно, mdb plus - то же самое, поставил access 2007 - с тем же успехом. Перерыв инет, ничего подобного не нашел - все сводится к обсуждению поврежденных баз данных. Здесь же совершенно другой случай - база не повреждена, но благополучно открываясь на одной машине, совершенно не желает этого делать на другой. Как быть?
Всем привет! Есть некая таблица, нужно (часть из ниже перечисленного я уже реализовал): 1 перевернуть таблицу через transform 2 подсчитать сумму строк (доп. столбец) 3 отсортировать по убыванию (доп. столбец) 4 отсортировать 10 первых записей, крупнейшие (доп. столбец) 5 найти сумму остальных строк (кол-во строк -10) Вопрос: можно ли это сделать за 1 sql-запрос или нужно шаманить по отдельности? Пункты 1 и 2 сделал, на остальных затык, работают по отдельности. Может я взялся за невозможное?
Вместо INSERT хочу использовать Recordset и мне нужно переделать код, если кто сможет помочь, буду благодарен.
INSERT INTO baza (IDpatient, IDtest, cena)
SELECT V.IDpatient, V.IDtest, Str(V.cena)
FROM tab_q_2 AS V
WHERENot Exists (SELECT B.IDpatient, B.IDtest, B.cena FROM baza B
WHERE B.IDpatient= V.IDpatientAND B.IDtest= V.IDtest)
Наброски кода:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("baza", dbOpenDynaset)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("tab_q_2", dbOpenDynaset)
rs.AddNew
rs("IDpatient") = rst!IDpatient
rs("IDtest") = rst!IDtest
rs("cena") = rst!cena
rs.Update
rst.Close
Set rs = Nothing
rs.Close
Set rs = Nothing
Знатоки. Где кроется механизм ? Есть некая форма старых авторов. В форме в режиме таблица курсор переходит по полям 1, 4, 6 из 1,2,3,4,5,6,7,8,9 и переходит на новую строку Индекс по таб по порядку 0..8 для полей 1...9 Никаких setfocus в модуле формы нет.
Добрый день, подскажите как сделать. Есть форма , на ней две подчиненной, при выборе какого-то значения в первой форме отображать все связанные данные во второй. На форуме вроде было что то подобное но я так и не нашел
Уважаемые, подскажите, может кто знает или сталкивался. Есть задача сделать базу, в которой идентификация пользователей будет выполняться по логин/паролю. Учетные данные будут храниться в базе. Вопрос: каким образом можно хэшировать пароли (чтобы в базе хранился хэш, а не пароль в открытом виде)? Может функция есть готовая?
Здравствуйте друзья. Создал таблицу "Сотрудники" и на основе этой таблицы форму и отчет. Кнопка "Вес список" выводит отчет со списком отпусков всех сотрудников, независимо от месяца. Проблема такая: не могу создать макросы, чтобы сортировать список отпусков по месяцам, то есть,чтобы заработал кнопка "Список по месяцам". И еще одна просьба: когда в поле "Выбор месяца" выбираю, допустим месяц "Май", хотел бы, чтобы рядом с списками автоматически появилось отчет со списком отпусков всех сотрудников только на май месяц. Файл прилагаю.
Есть MSA 2003 mdb-база, есть готовый шаблон экселя (на самом деле их уже много, они выгружаются как положено). Есть некий шаблон с двумя листами: "манифест" и "акт". Требуется выгружать разные данные из таблицы Выгрузка в таблицы ManifTBL и AktTBL, затем из этих таблиц и неких запросов выгружаем в эксель-шаблон, который уже находится в базе акцесса.
Проблема: - Первый раз при выгрузке (нажатии кнопки экспорта) выгружаются данные только в лист "манифест". Лист "акт" остается активным, и выделен диапазон B10 (- срабатывает код xlApp.Sheets("акт").Range("B10").Activate - ). - Новые пустые строки в шаблон не вставляются ( - не работает For j = 0 To rs4.RecordCount - 3 xlApp.Selection.Insert Shift:=xlDown Next j -). - Рекордсет не вставляется ( - не работает xlApp.Sheets("акт").Range("rangeVstavka").CopyFromRecordset rs4 - ). - Остальные значения в ячейки с листа "акт" вставляются.
!!! Если не закрывать эту книгу и еще раз нажать кнопку Выгрузки в эксель - заполняется и лист "акт" !!!
Вопрос: где ошибка и почему такое происходит???
Примерный код (изменил несущественно):
+
OptionCompareTextOptionExplicitDim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim obExcel AsObjectDim obWindow AsObject'окно документа'Печать/выгрузка манифеста и актаPrivateSub ManifAkt_9()
'Открываем шаблон Excel-файла
StartExcelEasy "Shabl"'Отключаем вывод оповещаний
DoCmd.SetWarnings False'Вставка данных для листа-манифеста
DoCmd.RunSQL "INSERT INTO [ManifTBL] ( бла-бла-бла )" & _
"SELECT Выгрузка.бла-бла-бла " & _
"FROM [Выгрузка];"'Включаем оповещания
DoCmd.SetWarnings True
CounterManif 'вызываем функцию счетчикаDim sNWind1 AsString' For conn1 (ManifTBL-таблица)Dim sNWind2 AsString' For conn2 (запрос)Dim sNWind3 AsString' For conn3 (AktTBL, таблица)Dim sNWind4 AsString' For conn4 (AktZapros, Запрос)Dim conn1 AsNew ADODB.Connection
Dim conn2 AsNew ADODB.Connection
Dim conn3 AsNew ADODB.Connection
Dim conn4 AsNew ADODB.Connection
Dim rs1 As ADODB.Recordset
Dim rs2 As ADODB.Recordset
Dim rs3 As ADODB.Recordset
Dim rs4 As ADODB.Recordset
sNWind1 = "c:\база.mdb"
conn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sNWind1 & ";"
conn1.CursorLocation = adUseClient
sNWind2 = "c:\база.mdb"
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sNWind2 & ";"
conn2.CursorLocation = adUseClient
sNWind3 = "c:\база.mdb"
conn3.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sNWind3 & ";"
conn3.CursorLocation = adUseClient
sNWind4 = "c:\база.mdb"
conn4.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sNWind4 & ";"
conn4.CursorLocation = adUseClient
Set rs1 = conn1.Execute("ManifTBL", , adCmdTable) ' ТаблицаSet rs2 = conn2.Execute("ManifZapros", , adCmdTable) ' ЗапросSet rs3 = conn3.Execute("AktTBL", , adCmdTable) ' ТаблицаSet rs4 = conn4.Execute("AktZapros", , adCmdTable) ' Запрос'Вставка количества пустых строк в эксель, равную количеству строк в таблице ManifTBL'- Делаем лист "манифест" активным
xlApp.Sheets("манифест").Select
xlApp.Sheets("манифест").Range("9:9").Select
xlApp.Sheets("манифест").Range("B9").Activate
Dim i AsInteger' - Вставляем нужное кол-во строк в таблице-шаблоне. // Здесь выполняется шикарно.For i = 0 To rs1.RecordCount - 3
xlApp.Selection.Insert Shift:=xlDown
Next i
'Экспорт из МСА-таблицы ManifTBL в Эксель, лист манифест // Здесь всё выполняется шикарно.
xlApp.Sheets("манифест").Range("rangeManif").CopyFromRecordset rs1
xlApp.Sheets("манифест").Range("date").value = Now()
xlApp.Sheets("манифест").Range("Доставил_Маниф").value = rs2![Доставил_Маниф] ' ИЗ ЗАПРОСА!!!
xlApp.Sheets("манифест").Range("WhoPrint").value = CurrentUser()
xlApp.Sheets("манифест").Range("TimePrint").value = Time
xlApp.Sheets("манифест").Range("A7").Select
xlApp.Selection.Sort Key1:=xlApp.Sheets("манифест").Range("A7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' Close 2 recordsets
rs1.Close
rs2.Close
conn1.Close
conn2.Close
Set rs1 = NothingSet rs2 = Nothing' ============== Выгрузка Листа Акт ============================'Отключаем вывод оповещаний
DoCmd.SetWarnings False'Вставляем данные для листа Акт
DoCmd.RunSQL "INSERT INTO [AktTBL] ( бла-бла-бла )" & _
"SELECT Выгрузка.бла-бла-бла " & _
"FROM [Выгрузка];"'Считаем и вставляем нумерацию строк в таблице AktTBL
CounterAkt
'Проверяем, является ли отправитель ИМ и вставляем значения в ОценочнаяСтоимость и НаложенныйПлатеж' - Является ИМ (ОцСт=ОцСт, НалПлат=ОцСт):
DoCmd.OpenQuery "_AktPeredachiUpdIM_Sum"' - НЕ является ИМ (ОцСт=3000, НалПлат=0)
DoCmd.OpenQuery "_AktPeredachiUpdNotIM_Sum"'Включаем оповещания
DoCmd.SetWarnings True' ===== ЭКСПОРТ В ЭКСЕЛЬ ===== !!!
xlApp.Sheets("акт").Activate
xlApp.Sheets("акт").Range("10:10").Select
xlApp.Sheets("акт").Range("B10").Activate
'Вставляем нужное кол-во строк в таблицу-шаблон ' // ЗДЕСЬ НЕ РАБОТАЕТ, ВЫШЕ НА 1-м ЛИСТЕ РАБОТАЕТ.Dim j AsIntegerFor j = 0 To rs4.RecordCount - 3
xlApp.Selection.Insert Shift:=xlDown
Next j
'Экспорт из МСА запроса AktZapros в Эксель, лист акт
xlApp.Sheets("акт").Range("rangeAkt").CopyFromRecordset rs4 ' // ЗДЕСЬ НЕ РАБОТАЕТ'Вставляем дату в шапку'xlApp.Sheets("акт").Range("date").value = Now() ' // И ТАК РАБОТАЕТ !!!
xlSheet.Range("date").value = Now() ' // ЗДЕСЬ РАБОТАЕТ !!!
xlApp.Sheets("акт").Range("WhoPrint").value = CurrentUser() ' // ЗДЕСЬ РАБОТАЕТ !!!
xlApp.Sheets("акт").Range("TimePrint").value = Time ' // ЗДЕСЬ РАБОТАЕТ !!!'Close the connection. Закрываем подключения, ресетим рекордсеты
rs3.Close
rs4.Close
conn3.Close
conn4.Close
Set rs3 = NothingSet rs4 = NothingSet xlSheet = NothingSet xlBook = NothingSet xlApp = NothingEndSub
Случайно наткнулся на проблему при импорте текстового файла в A2010 (в формате mdb). Если в конце текстового значения содержатся пробелы, то они автоматически удаляются.