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

Поиск сообщений в 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 ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

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

Обработка нескольких баз MS Access одновременно

Четверг, 21 Сентября 2017 г. 15:03 + в цитатник
Всем привет! Есть несколько баз MS Access (12 за каждый месяц года ), нужно сделать так, чтобы при запуске скрипта они обрабатывались вместе и отсортированные данные из них помещались в отдельный файл. Например, чтобы они сортировались по требуемым кодам ТН ВЭД. Возможно ли осуществить это?

http://www.sql.ru/forum/1272124/obrabotka-neskolkih-baz-ms-access-odnovremenno


TreeView без MSCOMCTL.OCX. Всё на VBA (Подойдёт для Access 64-bit)

Четверг, 21 Сентября 2017 г. 11:19 + в цитатник
Вот на сайте JKP Application Development Services Нашел статью An MSForms (All VBA) Treeview Introduction В ней написано о создании аналога TreeView без использования OCX. Выложены примеры в исходных кодах для Access (mdb), Excel и Word.

Написано, что разработка проверена для

Excel 2000
Excel 2003
Excel 2010
Excel 2010 (64 bit)
Excel 2011 (MAC Office)
Excel 2013 (32 bit)

Access 2003
Access 2010 (32 bit)
Access 2010 (64 bit)

Я скачал себе пример для Access. Запустил в Access 2010 (32 бит) Красиво. Правда есть какой-то глюк в AutoExec. У меня вылетала ошибка 13 Type mismatch. Но при запуске формы frmDemo никаких ошибок не было.

Сейчас сижу, разбираюсь. Возможно это неплохая альтернатива TreeView. Особенно если пишешь универсальные программы для 32-х/64-х разрядных Офисов.

Скачанный пример не прикладываю, т.к. его размер (280К) превышает разрешенный.

Может кому пригодится.

http://www.sql.ru/forum/1272099/treeview-bez-mscomctl-ocx-vsyo-na-vba-podoydyot-dlya-access-64-bit


При выводе отчёта требует ввести значение поля, которого нет в отчёте.

Среда, 20 Сентября 2017 г. 19:32 + в цитатник
несколько раз создавал новые отчёты, создавал новые запросы, на основании которых создаются отчёты.
Данное поле ни где не используется.
Создавал отчёт мастером.
При любом раскладе выходит сообщение введите значение параметра, и выдаётся приглашение ввести значение для несуществующего поля.
Как бороться с этой напастью?
Возможно, когда-то данное поле и было задействовано...
Потому что поле с таким именем есть в исходной таблице.
Но каким образом access помнит и приплетает это поле в новый чистый отчёт, источником которого является новый запрос....
что-то я не догоняю.
------------------------------------------------------------------------
СПС

http://www.sql.ru/forum/1272042/pri-vyvode-otchyota-trebuet-vvesti-znachenie-polya-kotorogo-net-v-otchyote


Зависает SQL-запрос содержащий вложенный зависимый запрос

Вторник, 19 Сентября 2017 г. 11:42 + в цитатник
Excel 2013.

Доброго дня!
Столкнулся с такой проблемой.

Есть условно две таблицы, которые нужно импортировать из Access и объединить:

T1 с полями KOD, Name, Date, G1, G2, GX... (около 200 000 записей)
T2 с полями KOD, Group, DateIn (около 8 000 записей)

Их нужно объеденить чтобы добавить в T1 поле Group
Объединение по полям KOD но в Т2 это поле не уникально, есть вариации записей по полям DateIn и искомому Group.
Поэтому должно соблюдаться еще одно условие Date = MAX(диапазон DateIn, где DateIn <=Date)

С импортом в Эксель проблем нет, проблемы с объединением (что в Access, что в Эксле)

Написал такой вот SQL.

SELECT T1.*, 
     (SELECT TOP 1 Group FROM T2 WHERE T1.KOD=T2.KOD ORDER BY DateIn DESC) as GroupName
FROM T1



Вложенный запрос сам по себе работает, но как тольок его вставляю во внешний - запрос начинает отработку и зависает.
В Excell - сразу, в Access при попытке получить все резульаты запроса (а так оказывает видимые строки на экране, общее кол-во записей не выводит).

Может кто знает как модифицировать запрос, чтобы он заработал ?
Например можно ли заменить вложенный запрос LEFT JOIN ? Ума не приложу как это сделать. Отчегото кажется что JOIN не должен зависать.

http://www.sql.ru/forum/1271884/zavisaet-sql-zapros-soderzhashhiy-vlozhennyy-zavisimyy-zapros


Access + ms sql слетает фильтр после обновления формы (F5)

Понедельник, 18 Сентября 2017 г. 16:57 + в цитатник
Всем привет.
Перенес все таблицы и запросы на MS SQL - получил неприятный бонус во всех формах - при обновлении все фильтры сбиваются. При этом значок над полем показывает, что фильтр активен.
Сталкивался кто-нибудь с проблемой? Как решать?

http://www.sql.ru/forum/1271827/access-ms-sql-sletaet-filtr-posle-obnovleniya-formy-f5


Access + ms sql слетает фильтр после обновления формы (F5)

Понедельник, 18 Сентября 2017 г. 16:57 + в цитатник
Всем привет.
Перенес все таблицы и запросы на MS SQL - получил неприятный бонус во всех формах - при обновлении все фильтры сбиваются. При этом значок над полем показывает, что фильтр активен.
Сталкивался кто-нибудь с проблемой? Как решать?

http://www.sql.ru/forum/1271827/access-ms-sql-sletaet-filtr-posle-obnovleniya-formy-f5


Access + ms sql слетает фильтр после обновления формы (F5)

Понедельник, 18 Сентября 2017 г. 16:57 + в цитатник
Всем привет.
Перенес все таблицы и запросы на MS SQL - получил неприятный бонус во всех формах - при обновлении все фильтры сбиваются. При этом значок над полем показывает, что фильтр активен.
Сталкивался кто-нибудь с проблемой? Как решать?

http://www.sql.ru/forum/1271827/access-ms-sql-sletaet-filtr-posle-obnovleniya-formy-f5


Условное форматирование из данных другой таблицы

Понедельник, 18 Сентября 2017 г. 14:00 + в цитатник
Приветствую,

Есть задача:
Требуется выделить поля цветом в ленточной форме, значения которых совпадают в другой таблице.

например: в ленточной форме есть записи по полю (ID)
1267
4562
3876
1112

В другой таблице есть записи 4562 и 1112. Соответственно, нужно чтоб в ленточной форме поле ID изменило цвет.

Добавлял на ленточную форму вспомогательное поле(lstID), и условным форматированием по полю (ID) ссылался на него, но поле меняет цвет только в одной записи.

Возможно как-то организовать эту задачу программно?
Private Sub Form_Load()
 
        Dim rs As ADODB.Recordset
        Dim sql As String
        Dim i As Integer
        Dim str As String
       
        
   ' Выбор данных для сравнения
        sql = "SELECT tbl_Current_Diagnos.ID_Tehniks " & _
                "FROM tbl_Current_Diagnos " & _
                "WHERE tbl_Current_Diagnos.Status =False"

        
        Set rs = New ADODB.Recordset
            rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            If rs.RecordCount <> 0 Then
                rs.MoveLast
                i = rs.RecordCount
                ' Цикл нужен
                Debug.Print rs.Fields(0)
                rs.MoveFirst
                rs.Close
                Set rs = Nothing
     

          
        End Sub

http://www.sql.ru/forum/1271796/uslovnoe-formatirovanie-iz-dannyh-drugoy-tablicy


Условное форматирование из данных другой таблицы

Понедельник, 18 Сентября 2017 г. 14:00 + в цитатник
Приветствую,

Есть задача:
Требуется выделить поля цветом в ленточной форме, значения которых совпадают в другой таблице.

например: в ленточной форме есть записи по полю (ID)
1267
4562
3876
1112

В другой таблице есть записи 4562 и 1112. Соответственно, нужно чтоб в ленточной форме поле ID изменило цвет.

Добавлял на ленточную форму вспомогательное поле(lstID), и условным форматированием по полю (ID) ссылался на него, но поле меняет цвет только в одной записи.

Возможно как-то организовать эту задачу программно?
Private Sub Form_Load()
 
        Dim rs As ADODB.Recordset
        Dim sql As String
        Dim i As Integer
        Dim str As String
       
        
   ' Выбор данных для сравнения
        sql = "SELECT tbl_Current_Diagnos.ID_Tehniks " & _
                "FROM tbl_Current_Diagnos " & _
                "WHERE tbl_Current_Diagnos.Status =False"

        
        Set rs = New ADODB.Recordset
            rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            If rs.RecordCount <> 0 Then
                rs.MoveLast
                i = rs.RecordCount
                ' Цикл нужен
                Debug.Print rs.Fields(0)
                rs.MoveFirst
                rs.Close
                Set rs = Nothing
     

          
        End Sub

http://www.sql.ru/forum/1271796/uslovnoe-formatirovanie-iz-dannyh-drugoy-tablicy


Условное форматирование из данных другой таблицы

Понедельник, 18 Сентября 2017 г. 14:00 + в цитатник
Приветствую,

Есть задача:
Требуется выделить поля цветом в ленточной форме, значения которых совпадают в другой таблице.

например: в ленточной форме есть записи по полю (ID)
1267
4562
3876
1112

В другой таблице есть записи 4562 и 1112. Соответственно, нужно чтоб в ленточной форме поле ID изменило цвет.

Добавлял на ленточную форму вспомогательное поле(lstID), и условным форматированием по полю (ID) ссылался на него, но поле меняет цвет только в одной записи.

Возможно как-то организовать эту задачу программно?
Private Sub Form_Load()
 
        Dim rs As ADODB.Recordset
        Dim sql As String
        Dim i As Integer
        Dim str As String
       
        
   ' Выбор данных для сравнения
        sql = "SELECT tbl_Current_Diagnos.ID_Tehniks " & _
                "FROM tbl_Current_Diagnos " & _
                "WHERE tbl_Current_Diagnos.Status =False"

        
        Set rs = New ADODB.Recordset
            rs.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            If rs.RecordCount <> 0 Then
                rs.MoveLast
                i = rs.RecordCount
                ' Цикл нужен
                Debug.Print rs.Fields(0)
                rs.MoveFirst
                rs.Close
                Set rs = Nothing
     

          
        End Sub

http://www.sql.ru/forum/1271796/uslovnoe-formatirovanie-iz-dannyh-drugoy-tablicy


Синтаксис. Объединить два Select IIF(IsNull

Воскресенье, 17 Сентября 2017 г. 10:29 + в цитатник
Два запроса которые работают отдельно друг от друга.

Select IIF(IsNull((Select [Field1] From qdfCrosses where AutoPartID =  or AutoPartID = )),’,,,’, X)


где Х должен быть

Select IIf(IsNull((Select [Field1] From qdfCrosses where AutoPartID = )), 'Раз', 'Два')


Возможно ли вставить вместо Х нужный запрос ?

http://www.sql.ru/forum/1271705/sintaksis-obedinit-dva-select-iif-isnull


Повернуть таблицу

Суббота, 16 Сентября 2017 г. 19:08 + в цитатник
Добрый день.
подскажите плиз.
есть таблица вида
A B C D E F
2 4 6 4 7 9

Столбцов шесть.

надо получить таблицу вида

A 2
B 4
C 6
D 4
E 7
F 9

т.е. преобразовать столбцы в строки.

С помощью кучи дополнительных таблиц для каждого столбца я еще понимаю как сделать.
но может есть более простой вариант?
Спасибо!

http://www.sql.ru/forum/1271692/povernut-tablicu


Нет обхода ошибок по On Error

Суббота, 16 Сентября 2017 г. 07:19 + в цитатник
Видимо что-то сделал и перестали работать On Error. Даже на новых базах. Даже простенькое деление на 0, которое всегда обходилась вставкой On Error Resume Next или On Error метка, теперь дает останов и сообщения об ошибке
Sub errproba()
    Dim v
    On Error Resume Next
    v = 1 / 0  'Здесь сообщение об ошибке
End Sub

Куда надо смотреть? Где что исправлять?

http://www.sql.ru/forum/1271661/net-obhoda-oshibok-po-on-error


WideCharToMultiByte для 64 битного

Пятница, 15 Сентября 2017 г. 12:41 + в цитатник
Добрый день

Использовал раньше в 32 разрядном Accsess функцию WideCharToMultiByte для перевода строк в utf8

Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ( _
    ByVal CodePage As Long, _
    ByVal dwFlags As Long, _
    ByVal lpWideCharStr As LongPtr, _
    ByVal cchWideChar As Long, _
    ByVal lpMultiByteStr As LongPtr, _
    ByVal cbMultiByte As Long, _
    ByVal lpDefaultChar As LongPtr, _
    ByVal lpUsedDefaultChar As LongPtr) As LongPtr
    
Private Const CP_UTF8 = 65001


Public Function StringtoUTF8(ByVal Src As String) As String
    Dim SrcLng As Long
    Dim DstLng As Long
    Dim Dst() As Byte
    Dim I As Long
    
    SrcLng = Len(Src)
    If SrcLng <> 0 Then
        DstLng = WideCharToMultiByte(CP_UTF8, 0, StrPtr(Src), SrcLng, 0, 0, 0, 0)
        If DstLng > 0 Then
            ReDim Dst(DstLng - 1)
            DstLng = WideCharToMultiByte(CP_UTF8, 0, StrPtr(Src), SrcLng, VarPtr(Dst(0)), DstLng, 0, 0)
           
            StringtoUTF8 = String(DstLng, " ")
            For I = 0 To UBound(Dst)
                Mid(StringtoUTF8, I + 1, 1) = Chr(Dst(I))
            Next
        End If
    End If
End Function


Но в 64 разрядном это не работает, а внезапно потребовалось.

Кто-нибудь работает с 64 разрядным? Подскажите, что нужно поменять?

http://www.sql.ru/forum/1271604/widechartomultibyte-dlya-64-bitnogo


транзакции

Четверг, 14 Сентября 2017 г. 12:40 + в цитатник
Добрый день, уважаемые знатоки!
Всех с прошедшим профессиональным праздником!
Помогите пожалуйста разобраться в вопросе.

Я создаю базу для склада инструмента. Она будет разделенной (таблицы отдельно, формы и прочее отдельно). Задался таким вопросом: как сделать так, чтобы при последовательной записи в разные таблицы, в случае непредвиденных ситуаций не произошло так, что в одну таблицу данные записались, в другую - нет. Отсюда мой первый вопрос: 1) Самый простой и правильный выход в данной ситуации использовать транзакции?

Если да, то с ними у меня тоже проблема и отсюда мой второй вопрос 2) Как сделать так, чтобы транзакции нормально проводились? Что я делаю не так?
Дело в том, что при выполнении кода, на строчке с Rollback или CommitTrans вылетает ошибка "попытка занесения или свертывания транзакции без предварительного начала транзакции". Подскажите как сделать так, чтобы все работало )

Прошу больно не пинать за кривой код. Я в этом деле не профессионал, и не все понимаю, что делаю :) Некоторые куски кода просто беру из справки, до конца не осознавая как там что работает. С транзакциями также поступал - брал код из примера support.office, только не работает он у меня.

Привожу кусок кода, повешенный на нажатие кнопки на форме.
Dim rsSpisanieAktual As Recordset
Dim KolVo As Long, VarIdJournal As Long

Dim wrk As DAO.Workspace
Set wrk = DBEngine(0)



wrk.BeginTrans
        '-------------запись в таблицу Журнал выдачи
    With Me.Form.Recordset
    .AddNew
    ![Кол-во] = [ПолеКолво]
    ![id_рабочий] = [ПолеФИО]
    ![на_заказ_№] = [ПолеЗаказ]
    ![Дата_in/out] = [ПолеДата]
    ![Id_инструмент] = [ВыборМаркировка]
    .Update
    End With
    '/-------------запись в таблицу Журнал выдачи

            '-----------запись в таблицу Журнал_спис_я_актуал
            KolVo = [ПолеКолво]
            VarIdJournal = [id_журнал]
            DoCmd.GoToRecord , "", acNewRec
            Set rsSpisanieAktual = CurrentDb.OpenRecordset("SELECT [id_журнал], [кол-во_не_списано] FROM [Журнал_спис_я_актуал]")
            With rsSpisanieAktual
                .AddNew
                ![id_журнал] = VarIdJournal
                ![кол-во_не_списано] = KolVo
                .Update
            End With
            Set rsSpisanieAktual = Nothing
            '/----------запись в таблицу Журнал_спис_я_актуал
  
wrk.CommitTrans dbForceOSFlush
'wrk.Rollback


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

http://www.sql.ru/forum/1271500/tranzakcii


две подчиненные формы

Четверг, 14 Сентября 2017 г. 01:02 + в цитатник
Здравствуйте!
есть 2 подчиненные формы.
при изменении номера документа в первой подформе, отображается/скрывается запись c таким же номером в другой подформе. Здесь проблемы нет. Проблема, если в первой подформе удалить запись, то вторая подформа обновляется только через F5 (вручную). Програмно не получается.

Пробовал:
Forms!Главная!Подч2.Form.Requery
Forms!Главная!Подч2.Form.RecordSource = Forms!Главная!Подч2.Form.RecordSource
выдает ошибку "Операция не поддерживается в транзакциях"

Forms!Главная!Подч2.Requery
Forms!Главная!Подч2.Refresh
- не помогает

http://www.sql.ru/forum/1271448/dve-podchinennye-formy


Ошибка "Невозможно использовать файл" в многопользовательском режиме (access)

Среда, 13 Сентября 2017 г. 17:37 + в цитатник
Уважаемые знатоки!

Есть разделенная база (файл с таблицами в сетевой папке и файл с формами и кодом на компе у пользователя).
Для одной из форм обрабатывается событие Таймер (код найден где-то здесь на форуме, используется для того, чтобы принудительно выбрасывать пользователей из программы).

Private Sub Form_Timer()
Dim AbortNow As Boolean
 
  AbortNow = Nz(DLookup("ExitNow", "Abort"), False)
  
  If AbortCounter > 0 And AbortNow Then
    Application.Quit                                 'Выходим из программы.
  End If

  If AbortNow Then                                 'Выводим предупреждение и ждём дальше.
    AbortCounter = AbortCounter + 1          'Теперь, при следующем срабатывании таймера, сработает выход из программы.
    DoCmd.OpenForm "frmExit"                  'Покажем форму - преупреждение.
  End If
End Sub

Периодически (часто) у какого-нибудь пользователя выскакивает ошибка "Невозможно использовать (путь и имя сетевого файла с таблицей Abort); файл уже используется. "
Остановка происходит на строке: AbortNow = Nz(DLookup("ExitNow", "Abort"), False)

Папка доступна всем пользователям на чтение и запись (около 40 чел). Подозреваю, что такое происходит в тот момент, когда одновременно два (или более) пользователя обращаются к таблице Abort. Событие Таймер происходит с периодичностью 30 сек.

Натолкните, в какую сторону смотреть?

http://www.sql.ru/forum/1271427/oshibka-nevozmozhno-ispolzovat-fayl-v-mnogopolzovatelskom-rezhime-access


Как поменять путь связанной БД Access?

Среда, 13 Сентября 2017 г. 12:17 + в цитатник
Прислали нам програмку в виде двух файлов, я так понимаю клиентская чать и условный бэкенд.
Так вот если запускать клиентскую часть, то она ссылается по зафиксированному пути:
f:/somefolder/backend/somefile.mdb

как и где в клиентской части этот путь можно поменять?

http://www.sql.ru/forum/1271384/kak-pomenyat-put-svyazannoy-bd-access


Запутался над решением проблемы по автоматизации

Вторник, 12 Сентября 2017 г. 20:09 + в цитатник
Здравствуйте!

Я тут немного запутался. Прошу подсказать.

Есть проблема.
Имеются несколько excel-их файлов со сложными таблицами. Где Файл B формируется из файла A, Файл С формируется из файла A, а файл D формируется из файла B. Файлы между собой синхронизирутся либо кропотливой ручной работы, либо макросами с помощью сопоставления. Но если меняется структура, то нужно менять во всех файлах. И нужно делать осторожно и не поломать формулы. Это очень геморно. А иногда нужно из этих файлов формировать файлы E, F и G. Поэтому считаю что нужно в одном месте все вводить и исходя из этого формировать нужные excel-ие файлы.

Возможное решение.

В Access есть заданные таблицы "Элементы" и "Подэлементы". Из этих двух таблиц формируется Таблица1 с нужной структурой без данных по месяцам.

Дальше Таблица1 выводится на специальной форме для просмотра и редактирования. Должна выводиться как в Excel-ом файле с промежуточными строками. То есть создали пустую таблицу с нужной структурой. Далее нужно вручную вводить данные в тех строках, у которых нету потомков (в excel-ом файле синий курсив). У тех строк, которые есть потомки прошиты формулы.

Понятно что в Access-таблице1 в промежуточных строках нету формул как прописано в Excel-ом файле. Поэтому важно учесть следующее:
1. У каких то Элементов присутствуют Подэлементы, а некоторых - отсутствуют. См. Excel-ий файл.
2. На форме должна быть кнопка "Сохранить". После того как ввели данные в строки, у которых нету потомок, нажимается на кнопку и сохранятся таблица.
3. Позже эта таблицу будет корректироваться. Открывается на этой специальной форме. Непосредственные корректировки. Если были корректировки в некоторых ячейках - закрашивается.
4. Возможно появится необходимость скорректировать структуру. То есть данные внесли, но нужно добавить строку без потерей введенных данных и для дальнейшей корректировки.
5. На следующий год формируестя подобная таблица, но возможно немного с измененной структурой, например в "Элементах" изменилась иерархия или в "Подэлементах" добавился еще подэлемент. Таблица за предыдущий год сохраняется в общей таблице.

Пытаюсь сообразить как реализовать. Похоже тут я не правильно начал делать. Прикладываю Access-ий файл. Чую, что надо по другому делать. Подскажите, как тут нужно двигаться? Может кто то имел подобный опыт. Каким образом должны редактироваться данные? Возможно нужны какие то промежуточные таблицы. В Access то реально реализовать?

http://www.sql.ru/forum/1271328/zaputalsya-nad-resheniem-problemy-po-avtomatizacii


в поле 4 данных

Вторник, 12 Сентября 2017 г. 18:17 + в цитатник
Уважаемые подскажите пожалуйста можно ли сделать такое ,что в поле всего можно было прописать 4 числа или букв или то и то ,после ввода 4 знаков ,автоматически перескаивало на другое поле ,Спасибо!

http://www.sql.ru/forum/1271320/v-pole-4-dannyh



Поиск сообщений в rss_sql_ru_access_programming
Страницы: 353 ... 276 275 [274] 273 272 ..
.. 1 Календарь