Имею обращение через Microsoft Jet (так как провайдер ГЕТЕРОГЕНЕН !!!!!)
if WScript.Arguments.Count>0 then
Set AdoSession=WScript.CreateObject("ADODB.Connection")
AdoSession.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\WORK\PM\db1.mdb;Mode=ReadWrite"
AdoSession.ConnectionTimeout=0
AdoSession.CommandTimeout=0
AdoSession.Open
AdoSession.Execute("insert into [Database=C:\WORK\an_aug_2013.xls;Excel 8.0;HDR=No;IMEX=0].[A1$] values(456)")
AdoSession.Execute("insert into [ODBC;Driver={Oracle in OraDb10g_home1};UID=XXX;PWD=XXX_20130901;DBQ=XXX_BANK.UUU;SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=INFOBANK)))].[XXX.A1] select F1 from [Database=C:\WORK\PM\an_aug_2013.xls;Excel 8.0;HDR=No;IMEX=0].[A1$]")
A = "delete from A1 in """" [ODBC;Driver={Oracle in OraDb10g_home1};UID=XXX;PWD=XXX_20130901;DBQ=XXX_BANK.UUU;SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=INFOBANK)))]"
MsgBox A
AdoSession.Execute(A)
AdoSession.Close
Set AdoSession=Nothing
end if
end if
Insert данных происходит нормально Последующая очистка DELETE - не происходит ERROR = Невозможно удаленние из указаннывх таблиц
Если команду (+ ДЛИННУЮ строка коннкта ) реализовать через базу Access все в порядке В чем разница и как реализовать через VBS файл (база MDB как таковая не нужна)
Понедельник, 17 Февраля 2014 г. 17:21
+ в цитатник
Дано таблица на 3000 записей с 13-ю полями с данными типа Integer. Пользователь вводит какие-либо 13 чисел. Нужно найти запись с наиболее близкими значениями полей. Приоритет полей оценивается в порядке возрастания.
Подскажите, пожалуйста, алгоритм решения!
P.S. Вариант когда все 13 чисел совпадают, уже решен.
Понедельник, 17 Февраля 2014 г. 17:03
+ в цитатник
Здравствуйте все! Мне нужно в таблице ЦветКузова в поле Частота (Частота использования цвета) проставить Частоту (Веса) цветов. Сначала с помощью мастера создал запрос на определение числа повторов цветов:
SELECTFirst(АвтоНаПродаже.КодЦветКузова)AS КодЦветКузова1,Count(АвтоНаПродаже.КодЦветКузова)AS Повторы
FROM АвтоНаПродаже
GROUPBY АвтоНаПродаже.КодЦветКузова
HAVING(((Count(АвтоНаПродаже.КодЦветКузова))>1));
Затем запрос ОбновитьЧастотуЦветов:
UPDATE ЦветКузова, ВесаЦветов SET ЦветКузова.Частота = [ВесаЦветов]![Повторы]WHERE(((ЦветКузова.КодЦветКузова)=[ВесаЦветов]![КодЦветКузова1]));
При попытке выполнить этот запрос выдается сообщение: "В операции должен использоваться обновляемый запрос". Что я сделал не так, и как правильно написать запрос на обновление?
Понедельник, 17 Февраля 2014 г. 16:14
+ в цитатник
Всем доброго дня, есть фрагмент кода, который в 2003 access-е, работает и все норм, суть в том что если не находится таблица с базой, выдается окно диалога, и указывается файл с таблицами, и затем связи перелинкуются, и открывается скрытая форма, а вот на 2010 access-е, выдает ошибку "3276 Invalid database object reference Недопустимая ссылка на объект Database" на открытии скрытой формы после перелинковки. У кого нибудь такая проблема возникала, спасибо.
PrivateSub Form_Open(Cancel AsInteger)
Application.RefreshTitleBar
Call HideMenu
If CheckLinks Then
DoCmd.OpenForm "f_Access", , , , , acHidden 'скрытая форма для поддержки коннекта.Call CreateMenu(1)
ElseIfNot RelinkTables Then
MsgBox "Укажите файл БД"
DoCmd.Quit
Else
DoCmd.OpenForm "F_Access", , , , , acHidden 'скрытая форма для поддержки коннекта.Call CreateMenu(1)
EndIfEndIf
Cancel = TrueEndSub
Понедельник, 17 Февраля 2014 г. 15:11
+ в цитатник
Доброго всем времени суток! Возможно тема и поднималась уже, но конкретного ответа найти так и не смог. Вопрос в следующем. Есть таблица "Договора" , в которой два поля Номер Договора и Дата договора. Необходимо сделать ленточную форму, в которой будет 2 поля для ввода интервала дат (Date_Start и Date_End). По заполнению данных полей должны выводиться все договора попадающие в этот интервал введенных дат
Понедельник, 17 Февраля 2014 г. 14:58
+ в цитатник
Приветствую,
Ситуация такова: Access 2003 Пока модернизировались формы (и немного структура) БД, в старой версии шел ввод данных. Теперь необходимо залить эти данные в новую версию БД. Заливке подлежат несколько связанных таблиц, структура и связи которых в новой БД осталась такой же, как и в старой. Новые таблицы пустые.
Как экспортировать сразу несколько таблиц и сохранить их id и связи? Это вообще возможно?
Понедельник, 17 Февраля 2014 г. 14:49
+ в цитатник
Добрый день! подскажите, пожалуйста, где я ошибаюсь? Хочу программно менять масштаб осей диаграммы на форме. Нашел такой способ:
Sub MinMax()
Dim obj_Diag3 AsObjectDim obj_Axis3 AsObjectSet obj_Diag3 = Form_Diag2!Диаграмма3.ObjectSet obj_Axis3 = obj_Diag3.axes(2)
obj_Axis3.MaximumScale = 110 ' тут вылетает с ошибкой: 1004 Run-time error Невозможно получить свойство MaximumScale класса Axis
obj_Axis3.MinimumScale = 100
EndSub
Воскресенье, 16 Февраля 2014 г. 16:59
+ в цитатник
Приветсвую всех! Уже неделю мучаюсь с запросом для вычисления накопленной суммы... и ничего не получается :( Во вложенном файле исходная таблица и то что должно получиться.
Воскресенье, 16 Февраля 2014 г. 05:04
+ в цитатник
Добрый день, господа! Хочу добавить в ленту своего приложения следующий контрол: editbox поиска по клиентам. В него вписывается полность или частично фамилия клиента, и по нажатию на enter должна открыться форма "Клиенты" только с теми записями, в которых в фамилии присутсвует вписанный фрагмент. В случае отсутствия выдать соответствующее сообщение. В параметр функции Docmd.OpenForm не впишется же такое where условие, только если фамилия полностью написана можно записать в where. Подскажите, пожалуйста, как организовать такой отбор данных?
Воскресенье, 16 Февраля 2014 г. 04:43
+ в цитатник
1. Бросаем на форму Список (Список1). 2. В свойствах задаем тип источника данных - список значений. 3. В макете пишем число столбцов = 3 и задаем размеры например 2см;2см;2см
Нужно по кнопке делать следующее: 1. Очистить список. 2. Записать в список значения: текст00 текст01 текст02 текст10 текст11 текст12 текст20 текст21 текст22 текст30 текст31 текст32
Здравствуйте уважаемые форумчане! Подскажите, если кто знает, как (или куда копать). В форме есть поле, например, марка автомобиля. Также на форме есть объект WebBrowser. При выполнении
WebBrowser0.Object.Navigate МАРКА
WebBrowser отображает поисковую страницу, которая определена службой поиска браузера по умолчанию. Как сделать так, что бы можно было программно (VB) менять дополнительные критерии поиска, например, отобразить только картинки, только карты или выполнить поиск с другой поисковой системой. Заранее спасибо!
Уважаемые знатоки VBA подскажите как можно осуществить отбор в отобранном. Есть ленточная форма имеющая рекордсет на основе запроса
SQLstr = "SELECT* From td_data2014 ORDER BY td_data2014.vx DESC , td_data2014.vx_date DESC;"Me.RecordSource = SQLstr
Затем пользователь делает допустим такой отбор
PrivateSub isx_f_AfterUpdate()
Dim s AsString
s = Me.isx_f.Text'Определяем текстWithMe.Form 'Выбираем формуIf Len(s) <> 0 Then
s = " WHERE ([isx]) = '" & s & "'"Else
s = ";"EndIfIfMe.arc = -1 ThenIfMe.ГодАрхива = 2013 Then
.RecordSource = "SELECT * FROM [td_data]" & s
EndIfElse
.RecordSource = "SELECT * FROM [td_data2014]" & s
EndIf
.Requery 'Меняем запросEndWithMe.isx_f = Null
EndSub
Рекодсет формы меняется и как именно в нем сделать следующий отбор по другому полю? Буду очень признателен за какой-нибудь пример для выполнения этой задачи!
Доброго времени суток. Подскажите пожалуйста, возможно ли реализовать динамическую фильтрацию в поле со списком (выделено красным на рисунке), которое получено запросом. Т.е. набрал я цифру 8 и увидел бы только те записи, где присутствует восьмерка. Или набрал g8 и получил список строк с этими значениями. Буду благодарен за помощь на конкретном примере.