-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4

Invalid link!








Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://www.sql.ru/forum/actualtopics.aspx?bid=4.
Данный дневник сформирован из открытого RSS-источника по адресу http://www.sql.ru/forum/actualrss.aspx?id=4, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Помогите с RegExp

Пятница, 07 Декабря 2018 г. 12:01 + в цитатник
Как проверить, что в строке заданы только цифры и символы ';'?

Цифры должны быть обязательно, хоть одна, а символ не обязателен.
Как правильно написать pattern, что бы проверить, что в поле введены цифры, разделенные ';'

Set objRegExp = CreateObject("VBScript.RegExp")
  
objRegExp.Pattern = "[0-9]"   ' <<<< ????????
str = "1;23;353;5;666;1237;8;9;0"
MsgBox objRegExp.Test(str)

Спасибо.
Поиск пользовал, но я в регулярных совсем не силен.

https://www.sql.ru/forum/1306397/pomogite-s-regexp


Источник данных для Диаграммы

Четверг, 06 Декабря 2018 г. 22:57 + в цитатник
Добрый час! Диаграмма создана в форме

Источник данных вот такой и все работает
TRANSFORM Sum([Count-Nazvanie_gosudarstva]) AS [Сумма_Count-Nazvanie_gosudarstva] SELECT [UG] FROM [sql_KolichestvoGosudarstvTotal]   GROUP BY [UG] PIVOT [UG];


Диаграмма строилась на основе следующего запроса
SELECT Count(sql_KolichestvoGosudarstv.Nazvanie_gosudarstva) AS [Count-Nazvanie_gosudarstva], sql_KolichestvoGosudarstv.UG
FROM sql_KolichestvoGosudarstv
WHERE (((sql_KolichestvoGosudarstv.Data_nachala_obucheniya)>=#1/1/2017#) AND ((sql_KolichestvoGosudarstv.Data_okonchaniya_obucheniya)<=#12/31/2019#))
GROUP BY sql_KolichestvoGosudarstv.UG;


Мне необходимо менять даты для выборки значений
вот такой код использую
 strSQL = "TRANSFORM Sum([Count-Nazvanie_gosudarstva]) AS [Сумма_Count-Nazvanie_gosudarstva]  " & _
              "SELECT [UG] FROM [sql_KolichestvoGosudarstvTotal]" & _
              "WHERE (((sql_KolichestvoGosudarstv.Data_nachala_obucheniya) >= #1/1/2017#) And ((sql_KolichestvoGosudarstv.Data_okonchaniya_obucheniya) <= #12/31/2019#))  " & _
              "GROUP BY [UG] PIVOT [UG];"
    
    Me.d_KolichestvoGosudarstvTotal.RowSource = strSQL


Выдает ошибку ((( Подскажите как сделать условия в для источника данных в диаграмме?

https://www.sql.ru/forum/1306371/istochnik-dannyh-dlya-diagrammy


Странности с DAO.Recordset в форме

Четверг, 06 Декабря 2018 г. 16:23 + в цитатник
Сломал всю голову. Access 2010. Разделенная БД.

Есть табличная форма.
Заполняется данными с помощью DAO.Recordset:
    
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset(sql)
Set Me.Recordset = rst


В переменной sql обычный Select запрос.
Данные загружаются нормально. Но при попытке сортировки или фильтрации в форме, вываливается ошибка запроса.
Стал смотреть Me.RecordSource и обнаружил, что при установке рекордсета формы, в RecordSource помещается обрезанный до 255 символов запрос. Отсюда и ошибки при сортировке. Если загружать данные в форму напрямую через Me.RecordSource=sql, то все ОК, но мне такой вариант не подходит.

Кто сталкивался, как побороть?

https://www.sql.ru/forum/1306356/strannosti-s-dao-recordset-v-forme


DoCmd.TransferDatabase в 2010 Access работает неправильно

Четверг, 06 Декабря 2018 г. 15:21 + в цитатник
DoCmd.TransferDatabase acExport, "ODBC", ConnString

В 2010 Access при экспорте на SQL server работает не правильно: после загрузки данных посылает команду
SET IDENTITY_INSERT ... OF

Вместо
SET IDENTITY_INSERT ... OFF

И последующие экспорты не заливают данные, а только создают таблицы, т.к. IDENTITY_INSERT может быть установлена в сессии только для одной таблицы. А сессия эта создаётся для себя Access'сом в команде TransferDatabase и кешируется.

Как проще всего обойти эту ошибку?
Каждый раз менять ConnString почему-то не сработало.

https://www.sql.ru/forum/1306346/docmd-transferdatabase-v-2010-access-rabotaet-nepravilno


Выполнение запроса без его сохранения

Четверг, 06 Декабря 2018 г. 09:57 + в цитатник
Если при создании запроса его не сохраняя перейти в режим таблицы, то Access виснет минут на 5. Если сначала сохранить, закрыть и выполнить, то всё ОК. Кто-нибудь сталкивался с таким и что нужно поправить?

https://www.sql.ru/forum/1306315/vypolnenie-zaprosa-bez-ego-sohraneniya


Хостинг RemoteApp для MS Access

Среда, 05 Декабря 2018 г. 15:22 + в цитатник
Здравствуйте, я уже давно занимаюсь созданием многопользовательских программ для MS Access, и каждый раз приходться поднимать MS Server VDS и по RDP раздавать доступы пользователям к базе MS Access.
Я прям запутался, может быть кто-то посоветует хостинг RemoteApp? Критично не устанавливать MS Acces на компьютеры пользоватей.

Спасибо

https://www.sql.ru/forum/1306283/hosting-remoteapp-dlya-ms-access


проблема 2019 года для mde

Среда, 05 Декабря 2018 г. 12:59 + в цитатник
Здравствуйте коллеги,
хотелось бы получить подтверждение или опровержение,
что за прошедшие 10-15 лет по аксессу 2000 2002 2003 в плане восстановления MDB из MDE ничего нового не появилось

т.е. разлочить формы, отчеты для редизайна можно заменой в хекс редакторе юникодного MDE на MDB
но средств восстановления программных модулей так и не появилось

собственно вопрос связан с грядущей проблемой года 2019
меняется ставка ндс что может стать неразрешимой проблемой для обладателей MDE

https://www.sql.ru/forum/1306273/problema-2019-goda-dlya-mde


Access To Word

Вторник, 04 Декабря 2018 г. 23:40 + в цитатник
Добрый час! Делаю отчет в MS Word

Можно ли после вставленного текста, создать новую закладку в MS Word и использовать при этом переменную?

ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:=" & pBookmarksNew & "

https://www.sql.ru/forum/1306251/access-to-word


TransferText acExportDelim и имена полей

Вторник, 04 Декабря 2018 г. 15:46 + в цитатник
Люди добрые, конкретно споткнулся и не пойму куда копать! Почему не выгружаются имена полей?!
DoCmd.TransferText acExportDelim, "TEST - спецификация импорта", "test1", "C:\Temp\test2.csv", True, , 1251

Примерчик в аттаче упрощенный, там аналогичный коду макрос для простоты примера. Капец, стоит "С именами полей", но файл выгружается без заголовков!
Я неуч, или дело не в бобине? Пробовал и на Win XP c MSO 2003 и на Win1- c MSO 2010

https://www.sql.ru/forum/1306241/transfertext-acexportdelim-i-imena-poley


HTTPRequest

Вторник, 04 Декабря 2018 г. 06:41 + в цитатник
Здравствуйте.
Функция возвращает HTML-текст страницы. Обработал кучу страниц, пока не наткнулся на одну, которая вместо текста на кириллице возвращает вот такую фигню: яяяяяяя яяя яяяяяяяя
Подскажете, как с этим бороться?
Public Function fncText_HTTP(strURL As String) As String                              'возвращает HTML-текст страницы
Dim oHttp1 As Object
On Error GoTo Ошибка
Set oHttp1 = CreateObject("MSXML2.XMLHTTP")
If Err.Number <> 0 Then
    Set oHttp1 = CreateObject("MSXML.XMLHTTPRequest")
End If
On Error GoTo 0
If oHttp1 Is Nothing Then
    MsgBox "Не удалось инициализировать объект MSXML!"
    Exit Function
End If
On Error GoTo Ошибка
oHttp1.Open "GET", strURL, True                                                       'true - асинхронный запуск
oHttp1.Send
    Do While oHttp1.ReadyState <> 4                                                   'ожидание ответа
        DoEvents
    Loop
fncTextHTTP = oHttp1.ResponseТекст
    Set oHttp1 = Nothing
Exit Function
Ошибка:                                                                               'Обработка ошибки
MsgBox Err.Description & "  " & Err.Number, , "Function fncText_HTTP"
Resume Next
End Function

https://www.sql.ru/forum/1306210/httprequest


Active Link Connection Access 2010

Понедельник, 03 Декабря 2018 г. 20:09 + в цитатник
Приветствую,

Подскажите пожалуйста, как проверить способами VBA Access 2010 x64, получила ли сетевая карта IP и активный ли линк?

PS
Есть сложности с работой базы в многопользовательском режиме. Т.е. иногда, у кого-то из пользователей зависает\отпадает сеть вылазит ошибка


Run-Time error '3044'

Недопустимый путь...

https://www.sql.ru/forum/1306197/active-link-connection-access-2010


Не получается написать запрос.

Воскресенье, 02 Декабря 2018 г. 15:50 + в цитатник
Есть таблица.
Test_Таблица11
Столбцы:
Код_менеджера
Тип_точки
Продажи_тонн

Дословно задание: Необходимо добавить в таблицу данные с Тип_точки "Мелкая", которые будут равны данным с Тип_точки "Крупная".
На данный момент все записи в таблице с данными по Тип_точки "Крупная".
Я пишу запрос так:
INSERT INTO Таблица1 (Код, Продажи_тонн)
SELECT Код, Продажи_тонн FROM Таблица1

и далее мне надо чтобы столбец Тип_точки заполнился данными "Мелкая", но только по добавленным данным. Не получается. Если кто то знает, помогите пожалуйста

https://www.sql.ru/forum/1306148/ne-poluchaetsya-napisat-zapros


Атол ККТ10 и VBA

Воскресенье, 02 Декабря 2018 г. 12:44 + в цитатник
Всем привет!
В связи с переходом в 2019 году Атола на 10 драйвер и отказа от ДТО 8 возникла необходимость переписать обработку пробития чеков по новым правилам.
Да вот незадача: в новой документации (http://integration.atol.ru/#c850ebec42) Атол игнорит в примерах VBA и предлагает "допилить" примеры для Delphi или Python. К сожалению, к такому обороту событий я оказался не готов.
В процессе игры с бубном удалось выяснить что:
10 драйвер работает с Access 2010 и выше.
Библиотека addin_fptr10_x64.dll регистрируется только если на компе есть Visual Studio.

Создал пустую форму, на открытие повесил: Set fptr = CreateObject ("AddIn.Fptr10")
При открытии ошибку не выдает (в А2007 просил ActiveX).
Ну а дальше, как герой старого интернет видео: "Это как бы,ну,на этом наши полномочия все".

Даже в принципе, не могу понять с чего начать. Если кто сталкивался с 10 версией Атола, подскажите, как хоть должен выглядеть этот код в VBA или может есть пример как это в 1С сделано.

https://www.sql.ru/forum/1306142/atol-kkt10-i-vba


Мед. Учреждения - Учет Лекаррственных препаратов.

Пятница, 30 Ноября 2018 г. 23:17 + в цитатник
Чёй та из за доброты своей душевной, решил помочь ТСу, который на своей работе, решил помочь своим коллегам и создать БД для облегчения работы.
Смысл в том, что бы вести учет выданных препаратов (типа - лекарств)
Я пока немного пьяный в пятницу, ни как не соображу, как в запросах отразить и вычислить, скока и чего - Осталось, ибо согласно задумке
Кроме Категории препарата и его Названия, хотса учитывать остаток лекарств по цене и сроку годности.

Вроде понимаю что нужно подчинённо-встроенными запросами такое решать, но так как - Панург, так меня и не научил как их нужно готовить, то не и особо и то получается в запросе - zОстатокПрепаратов, отразить сколько поступившего лекартства осталось после выдачи в форме - МедКарта.
Смутно представляю, из за чего, но наверное есть более понимающие личности, которые не смутно, а в течении часа разберутся, почему у того же - Анальгина, с разной ценой или сроком изготовления при выдаче
-3 вычитиется везде
-3, а не у того препарата, у которого вычитается?

Надеюсь был понятен, если нет, то если кому интересно переспросите.
Блин.
Пример не прикладывается.
Ладно, возможно сам завтра разберусь.

https://www.sql.ru/forum/1306113/med-uchrezhdeniya-uchet-lekarrstvennyh-preparatov


Form_ApplyFilter отловить условие фильтра

Пятница, 30 Ноября 2018 г. 13:29 + в цитатник
добрый день.

Можно ли отловить в ApplyFilter какое удловие задано последним "=" или "<>" "Like" или "Not Like" или только путем анализа сdойства FILTER?

https://www.sql.ru/forum/1306090/form-applyfilter-otlovit-uslovie-filtra


Фильтр отчета

Пятница, 30 Ноября 2018 г. 12:36 + в цитатник
Всем привет. Есть два отчета с полем фильтра. Источники:
TRANSFORM Count(Accounting.RegNum) AS [Count-RegNum]
SELECT tblCat31.Category31, Count([Accounting]![RegNum]) AS Summary
FROM tblCat31 INNER JOIN (OffType INNER JOIN Accounting ON OffType.OffTypeID = Accounting.TypeID) ON tblCat31.CatID = OffType.Cat31ID
WHERE (((CInt(CLng(Year([OffenceDate]))))=[Reports]![RepQuart31]![YeEnt]))
GROUP BY tblCat31.Category31
PIVOT Format([OffenceDate],"q") In (1,2,3,4);

и
SELECT QerProc.[№ п/п], QerProc.[Дата регистрации], QerProc.ДПНСИ, QerProc.Выявил, QerProc.[ФИО ПОиО], ([QerProc].[Дата нарушения] & " " & Format([QerProc].[Время нарушения],"hh\.nn") & " " & [QerProc].[Место нарушения] & "  " & [QerProc].[Характер нарушения]) AS [Характер нарушения], QerProc.Обработчик, QerProc.Взыскание, QerProc.[Отметка ОСУ]
FROM QerProc RIGHT JOIN Accounting ON QerProc.OffenceID = Accounting.OffenceID
WHERE (((CInt(CLng(Year([OffenceDate]))))=[Reports]![RepJournal]![JYeEnt]))
ORDER BY QerProc.[№ п/п];


В первом отчете (((CInt(CLng(Year([OffenceDate]))))=[Reports]![RepQuart31]![YeEnt])) работает, а во втором
(((CInt(CLng(Year([OffenceDate]))))=[Reports]![RepJournal]![JYeEnt])) нет. В чем может быть причина?

https://www.sql.ru/forum/1306083/filtr-otcheta


Как определить из какой таблицы в многотабличном обновляемом запросе Access удалит запись?

Пятница, 30 Ноября 2018 г. 08:48 + в цитатник
Если есть сложный многотабличный обновляемый запрос, то в большинстве случаев из него можно удалить строку.
Как можно определить из какой таблицы будет происходить удаление?

Похоже что решение Access принимает на основе того, какие индексы определены в таблицах и как они связаны, но сам алгоритм выбора мне ещё не понятен.

IMHO, Mon$te®

https://www.sql.ru/forum/1306075/kak-opredelit-iz-kakoy-tablicy-v-mnogotablichnom-obnovlyaemom-zaprose-access-udalit-zapis


Запрос на выборку. Как упростить?

Пятница, 30 Ноября 2018 г. 08:28 + в цитатник
Здравствуйте люди :) Подскажите в таком вопросе. Значит суть такая. Есть таблицы товары и категории в базе access. В товарах есть различные параметры. В категориях только код товара и категории к которым он принадлежит. Один товар обычно в нескольких категориях состоит. Необходимо сделать такую выборку, которая будет отображать например 20 товаров на n странице с нужными параметрами и в выбранной категории. Например если страница первая - то первые 20 товаров, удовлетворяющие поиску. Если страница вторая, то уже 20 товаров после тех, которые на первой странице.
Каким образом это реализовано у меня на данный момент. А очень плохо. У меня категории находятся в таблице товаров в виде строки. И я использую оператор LIKE для поиска совпадений в этой строке. А запрос на выборку следующий:


SELECT * FROM (SELECT TOP 20 * FROM (SELECT TOP 40 * FROM `Товары` WHERE `Наличие`=true AND `Цена`>=70 AND `Категория` LIKE '%Металл%' ORDER BY `Дата добавления` DESC) ORDER BY `Дата добавления` ASC) ORDER BY `Дата добавления` DESC;

По сути три запроса. Последний только для сортировки по убыванию. Но я пробую выполнить запрос на получение количества товаров в нужной категории

SELECT COUNT(*) FROM `Товары` WHERE `Наличие`=true AND `Цена`>=70 AND `Категория` LIKE '%Металл%'

И получаю значение через 250мс. При это у меня всего лишь 50.000 записей. Страшно представить что будет при миллионе, когда будут идти запросы сразу от многих клиентов.
В связи с этим вопрос. Как ускорить работу запроса?
Понятное дело надо выносить категории в отдельную таблицу. Добавить в запросе вторую таблицу и в выборке сделать т1.категория=металл and т1.кодтовара=т2.код. Кажется так. Но тогда база будет для каждой строки категорий делать запрос на сравнение всех кодов в первой таблице? Не получится шило на мыло? И есть ли какой-то способ постраничной выборки быстрее, чем используются мной?

Модератор: Тема перенесена из форума "MySQL".

https://www.sql.ru/forum/1306073/zapros-na-vyborku-kak-uprostit


Странность при экспорте в Excel

Пятница, 30 Ноября 2018 г. 06:49 + в цитатник
Подскажите с проблемой. При выгрузке в Excel некоторые данный "прирастают мусором". Например в Access`е внесено значение "561,4", а в Excel выгружается "561,40002"(пример в приложенной картинке). Данные не высчитываемые, забивались руками.

Код на экспорт в шаблон:
+

Private Sub Выгрузка_в_EXEL_Click()
'Объявляем переменные

Dim rst As Object
Dim xlApp As Object
Dim xlWb As Object
Dim xlWs As Object
Dim recArray As Variant

Dim strSQL As String
Dim fldCount As Integer
Dim recCount As Long
Dim iCol As Integer
Dim iRow As Integer


' Создать экземпляр Excel и добавить книгу
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Open(CurrentProject.Path & "\Шаблоны\Карты_изоляции\171201\В_вводы.xlsx")
Set xlWs = xlWb.Worksheets("Ввод")

' Вывести Excel на экран позволить пользователю управлять временем работы Excel
xlApp.Visible = True
xlApp.UserControl = True

' Скопировать имена полей в первую строку листа
'fldCount = rst.Fields.Count
'For iCol = 1 To fldCount
' xlWs.Cells(1, iCol).Value = rst.Fields(iCol - 1).Name
'Next

' Проверить версию Excel
If Val(Mid(xlApp.Version, 1, InStr(1, xlApp.Version, ".") - 1)) > 8 Then
'EXCEL 2000,2002,2003 или 2007: используется метод CopyFromRecordset

' Скопировать набор записей на лист, начиная с ячейки A21
xlWs.Cells(21, 1).CopyFromRecordset rst
'Примечание. При использовании метода CopyFromRecordset произойдет сбой, если набор записей
'содержит поле объекта OLE или массив данных, таких как
'иерархические наборы записей

Else
'EXCEL 97 или более ранней версии: Будет использоваться метод GetRows, а затем массив будет скопирован в Excel

' Скопировать набор данных в массив
recArray = rst.GetRows
'Примечание. Метод GetRows возвращает массив, индексируемый с 0, первая
'размерность которого содержит поля, а вторая
'содержит записи. Массив будет транспонирован таким образом, чтобы
'первая размерность содержала записи, обеспечивая
'правильное отображение данных при копировании в Excel

' Определить количество строк

recCount = UBound(recArray, 2) + 1 '+ 1, поскольку массив индексируется с 0


' Проверить массив на наличие недопустимого содержимого при
' копировании массива в лист Excel
'For iCol = 0 To fldCount - 1
' For iRow = 0 To recCount - 1
' ' Обработка полей Date (дата)
' If IsDate(recArray(iCol, iRow)) Then
' recArray(iCol, iRow) = Format(recArray(iCol, iRow))
' ' Обработка полей объектов OLE или полей массивов
' ElseIf IsArray(recArray(iCol, iRow)) Then
' recArray(iCol, iRow) = "Array Field"
' End If
' Next iRow 'следующая запись
'Next iCol 'следующее поле

' Транспонировать и скопировать массив в лист,
' начиная с ячейки A21
xlWs.Cells(21, 1).Resize(recCount, fldCount).Value = _
TransposeDim(recArray)
End If

' Автоматически подобрать ширину столбцов и высоту строк
'xlApp.Selection.CurrentRegion.Columns.AutoFit
'xlApp.Selection.CurrentRegion.Rows.AutoFit

' Закрыть объекты ADO
rst.Close
'cnt.Close
Set rst = Nothing
'Set cnt = Nothing

' Освободить ссылки на Excel
Set xlWs = Nothing
Set xlWb = Nothing

Set xlApp = Nothing

End Sub

Function TransposeDim(v As Variant) As Variant
' Пользовательская функция для транспонирования массива, индексируемого с 0 (v)

Dim X As Long, Y As Long, Xupper As Long, Yupper As Long
Dim tempArray As Variant

Xupper = UBound(v, 2)
Yupper = UBound(v, 1)

ReDim tempArray(Xupper, Yupper)
For X = 0 To Xupper
For Y = 0 To Yupper
tempArray(X, Y) = v(Y, X)
Next Y
Next X

TransposeDim = tempArray


End Function

https://www.sql.ru/forum/1306070/strannost-pri-eksporte-v-excel


Отбор в запросе по дате

Четверг, 29 Ноября 2018 г. 18:33 + в цитатник
Здравствуйте!
Перестал работать отбор в запросе по дате.
Access + SQL SERVER
Дату преобразую в число CLng(CDate(Format(NZ([rNomenclature_Portion_Movement].[rNPM_Period];0);'dd.mm.yyyy'))), ставлю отбор CLng... выдает пустой запрос
В данных вроде никаких ошибок нет
Раньше запрос работал, сейчас перестал... и не пойму в чем причина может быть

https://www.sql.ru/forum/1306057/otbor-v-zaprose-po-date



Поиск сообщений в rss_sql_ru_access_programming
Страницы: 353 ... 329 328 [327] 326 325 ..
.. 1 Календарь