На счет прикрепленных файлов (вложений) многие уже в курсе, в том числе и большинство антивирусов, теперь новая фича - ссылка на зараженный файл... - Для мобильных приложений пример здесь https://hi-tech.mail.ru/news/sms-virus/?frommail=1 - Для ОС, пример из личной практики (от моих клиентов) : письмо от ростелекома "Акт за август можете скачать по ссылке", ссылка в облако, через два часа на компьютере и доступной шаре всё что можно зашифровано и на экране картинка куда писать и договариваться.
Понедельник, 26 Сентября 2016 г. 12:03
+ в цитатник
Имеется две базы условно старая и новая в новой базе в таблицы добавились некоторые поля. Нужно из старой базы перенести все данные в новую в поля, которые есть в обоих базах. Делаю так: но не получается присвоить значение поля.
PrivateSub ZAGRUZKA_SPRAVOCHNIKOV_BTN_Click()
' из другой азы зарузка данных CLN_TBL.mdbDim tdf As DAO.TableDef
Dim BD_1 As DAO.Database ' текущая базаDim BD_2 As DAO.Database ' другая базаDim Table_Name 'Dim Pole_Name 'If VOPROS("Удалить все имеющиеся данные?") = FalseThenExitSubIf VOPROS("Заменить все данные справочников?") = FalseThenExitSub
MESS "Укажите путь к файлу таблиц для загрузки данных"
STR_FILTER = "Выберите файл" & Chr$(0) & "*.mdb" & Chr$(0)
TEMP_PATCH_TO_BASE = FileOpenSave(OFN_OVERWRITEPROMPT, CurrentProject.Path, STR_FILTER, , ".mdb", , "Выбор CLN_TBL.mdb", -1, True)
If Nz(TEMP_PATCH_TO_BASE) <> ""ThenIf InStr(1, TEMP_PATCH_TO_BASE, "CLN_TBL", vbTextCompare) <> 0 ThenSet BD_1 = CurrentDb 'Set BD_2 = OpenDatabase(TEMP_PATCH_TO_BASE) ' путь к базе указанный пользователемForEach tdf In BD_2.TableDefs
If Mid(tdf.Name, 1, 4) <> "Msys"Then'если не системная таблица тогда смотримForEach objField In BD_2.TableDefs(tdf.Name).Fields
Table_Name = tdf.Name
Pole_Name = objField.Name
' вот тут начинается затык. Как правильно написать строку передачи знаяений поля?
MsgBox CurrentDb.TableDefs(Table_Name).Fields(Pole_Name).Value
BD_1.TableDefs(Table_Name).Fields(Pole_Name)=BD_2.TableDefs(tdf.Name).Fields(objField.Name)
NextEndIfNext tdf
BD_1.Close
Set BD_1 = Nothing
BD_2.Close
Set BD_2 = NothingElse
MESS "Не верно указан файл."ExitSubEndIfElse
MESS "Не указан файл."ExitSubEndIfEndSub
Понедельник, 26 Сентября 2016 г. 10:18
+ в цитатник
Доброе утро!
Есть запрос:
SELECT Склад.Код, Склад.Название,Sum([Склад].[Количество])-Sum([Продажа].[Количество])AS Остаток
FROM Склад RIGHTJOIN Продажа ON Склад.Название = Продажа.Название;
Понедельник, 26 Сентября 2016 г. 10:05
+ в цитатник
Потыркался, я с созданием главного меню для своего приложения туда сюда, так и не понял как его реализовать. Особенно проблема актуальна для последних версий Access как я понял. У меня 2013. В связи с этим возникла идея реализовать свою главную форму - контейнер, в котором прилепить кнопки, меню, панели инструментов куда захочу. Особенно понравился стандартный компонент "Элемент навигации". Пусть не меню, но что-то подобное там есть (кнопки навигации). Форм у меня не много, назначил на несколько кнопок загрузку соответствующих форм в подчиненную форму элемента. Получилось все вроде то что надо, обрадовался. Но потом опечалился. То, да не то. Хотелось бы что бы была не одна подчиненная форма, а контейнер в который можно загрузить сколько угодно форм. Подобно нескольким документам в Word, Excel. Подобно самому главному окну Microsoft Access наконец. Т.е. должно быть главное окно программы. В которое по мере потребностей, при нажатии соответствующих кнопок загружаются отдельные формы. Со своими элементами управления. С независимым положением друг относительно друга в пределах главного окна. Существует ли соответствующий готовый компонент? Как подобное реализовать? Идея сделать "главную кнопочную форму" категорически не нравится.
Затем в дальнейшем хотелось бы избавится от окна Акцесс и запускать приложение на компьютерах пользователей как отдельное независимое приложение. (вероятно в Access Runtime), но это позже, да и где-то видел соответствующую тему.
Понедельник, 26 Сентября 2016 г. 09:14
+ в цитатник
Всем доброго утра!
Вчера дома работал одной формой - никаких проблем не было. Сегодня пришел на работу, включил ту же форму - при обращении к me.form.recordset аксес просто вылетает не указав причину даже. На ровном месте спотыкается.. что за фигня такая Даже на таком коде спотыкается:
Private Sub ПолеКолвоСписать_AfterUpdate() With Me.Form.Recordset End With End Sub
А это текст из "показать подробности проблемы"
Сигнатура проблемы: Имя события проблемы: APPCRASH Имя приложения: MSACCESS.EXE Версия приложения: 15.0.4569.1503 Отметка времени приложения: 52b0b06b Имя модуля с ошибкой: acedao.dll Версия модуля с ошибкой: 15.0.4569.1503 Отметка времени модуля с ошибкой: 52b0b1cd Код исключения: c0000005 Смещение исключения: 00037c8f Версия ОС: 6.1.7601.2.1.0.256.48 Код языка: 1049
Дополнительные сведения об этой проблеме: LCID: 1049 skulcid: 1049
Воскресенье, 25 Сентября 2016 г. 18:53
+ в цитатник
MS Access >2003 Что такое надо написать в модуле класса, чтобы стал виден тип Recordset? (Нужно загрузить данные из таблички в свою структуру, описанную в своем классе Пишу
Dim Rec As Recordset
а он не видит этот тип...) И наверное в этот же вопрос, как внутри своего класса использовать другой свой класс?
Воскресенье, 25 Сентября 2016 г. 17:05
+ в цитатник
Суть вопроса: Есть ли способ получить ссылку на контрол Subform из подчиненной формы открытой в этом контроле? По свойству Parent возвращается родительская форма, а нужен элемент родительской формы в котором эта подчиненная форма открыта. Собственно основная задача отловить потерю фокуса элементом управления подчиненной формы при переходе к родительской (в идеале любом выходе за ее пределы) насколько я понял, после тыканий и лазания по форумам единственный сколько-то приемлемый метод - перехват OnExit контрола субформы, но подписаться на него по условиям задачи можно только из контекста контрола самой подчиненной формы. Это все нужно в рамках экспериментов с плавающей кнопкой. Подопытный экземпляр во вложении.
Воскресенье, 25 Сентября 2016 г. 09:51
+ в цитатник
Помогите переделать вложение select в insert
INSERT INTO tbPrimary (surname,name,o_name, dateBirth,idAdres) VALUES ('иванов','иван','иванович', '10.10.1990', (select tbAdres.id from(( tbAdres left join tbRayonGorod gr on gr.id = tbAdres.idGorodRayon) left join tbStreet s on s.ID = tbAdres.idStreet) left join tbNomerDoma dom on dom.ID = tbAdres.idNomerDoma) left join tbNomerKvartira kv on kv.ID = tbAdres.idNomerKvartira where rayon_adr='веселый' and gorod_adr='интересный' )
Есть таблица с 200000 записями id dat param ……… 100 22.09.2016 0:03:20 0 101 22.09.2016 0:03:22 0 102 22.09.2016 0:03:24 22 103 22.09.2016 0:03:26 23 104 22.09.2016 0:03:28 26 105 22.09.2016 0:03:30 20 106 22.09.2016 0:03:32 22 …… И мне необходимо при выборке как бы «сжать» данные: тоесть из 200 000 записей усреднить/сгладить/получить 1000 записей. Я , думаю, что при выборке надо группировать и усреднять (по полю param) по 200 записей А вот как построить запрос не пойму
Имею простую таблицу в конструкторе таблиц. ДАТА: [23.09.2016] Время: [15:00] Так вот, как сделать зависимость времени от даты? Что бы access понимал, что я ввел время на дату 23.09.2016. А не на 01.01.2016 г.
Для выгрузки из таблицы Access использую шаблон Excel. В нём, для подстановки значений в поля используется именованный диапазон ячеек. =========== Если в этот диапазон программно добавить строки, тогда, при выборе значений из поля со списком он работать правильно не будет. Как программно создавать, удалять, дописывать диапазон? Помогите решить задачку.
Вопрос, наверное, простой, но решения я пока не нашел. Мне нужно создать форму для списания инструмента из базы склада инструмента. Хотел сделать форму в режиме таблицы, где будет отображаться весь существующий список инструмента. Тот инструмент, что нужно списать хотел помечать флажком. Но если не привязывать источник данных у флажка, то в табличном виде при нажатии на один флажок нажимаются сразу все остальные. Можно ли как-то обойти эту проблему, не создавая в таблице - источнике данных отдельное поле под этот флажок?
Ребята всем привет прошу подкорректировать код. Исходная задача: есть созданная мной структура, которую необходимо записать в базу данных MS ACCESS 2003 тип поля OLE Язык программирования C++ Builder
созданная мной структура //Служебные функции struct stResN2gramm { long iNumBg2; long** lMasBg2; };
TMemoryStream *M = new TMemoryStream(); M->Write(tst->lMasBg2,sizeof(tst->lMasBg2)); TStream *B = stats->ADOQuery2->CreateBlobStream(stats->ADOQuery2->FieldByName("Matrix"),bmWrite);
B->CopyFrom(M,M->Size); - вот тут вываливается ошибка "Stream read error" прошу помочь, спасибо
In addition, the following files along with the 16-bit ODBC 2.10 Driver Manager, which are not part of ODBC 3.51, are required by and should be installed with the 16-bit application. File name Description Odbc.dll 16-bit Driver Manager Odbcinst.dll 16-bit Installer DLL Odbcadm.exe 16-bit ODBC Administrator program
собственно непонятно где можно в 21 веке найти 16 битные ODBC DRIVERS
коллеги помогите решить проблему при переходе на след запись в форме. суть такова: на основе одной таблицы создано две формы. при переходе из одной формы в другую и обратно настроено так чтобы ид код записи сохранялся, а не сбрасывался на первую запись. но когда после этих переходов по формам начинаешь в одной из форм листать записи - ничего не получается. в меню активирован фильтр. отключая его- тоже ничего не выходит, помогает только лишь перезагрузка формы (при условии если не переходишь в другую форму) пытался сделать сам, но чето выдаёт ошибку на GoTo.Record.......... (вообще я начинаючий в программировании и синтаксис знаю плохо) помогите с кодом vba пожалуйста!
Есть 2 связанные таблицы: банкоматы и контракты. Связаны по полю серийный_номер банкомата. Когда банкомат перевозится со старого места установки на новое, старый контракт закрывается, а новый открывается. У банкомата в таблице банкоматы может быть флаг что банкомат находится на гарантии.
Нужно отобразить все банкоматы на гарантии и отобразить их последнее место установки с адресом
Вот пример:
таблица1 Банкоматы: серийный номер - текстовый уникальный индекс на_гарантии - логическое значение
таблица2 Контракты: системный_номер - индекс, уникальное увеличивающееся число адрес_установки - текстовый банкомат_демонтирован - логическое значение серийный номер - связь с таблицей1
Например я делаю запрос чтобы поле на_гарантии было ИСТИНА, но в результат попадают все места установки из таблицы контракты
Доброго времени суток! В программировании я новичок, но необходимо с помощью кода VBA решить проблему в моей БД Access Суть такова: есть таблица персональные данные которая связана с таблицей оценивание отношением один ко многим. На основе этих таблиц созданы формы с такими же названиями
Выбирая необходимого человека в форме персональные данные , необходимо чтобы при нажатии кнопки в этой форме -открылась форма оценивание в режиме создания новой записи, но чтобы был подтянут код этого человека. Смысл в том чтобы открылась не просто пустая форма а уже с этим человеком, ему потом ставятся оценки и всё!!!
Помогите с кодом пжлст!!!
Private Sub оц_Click() On Error GoTo Err_оц_Click
Dim stDocName As String Dim stLinkCriteria As String