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

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

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

Запустить из vba проводник с выбранными файлами?

Пятница, 27 Января 2017 г. 14:38 + в цитатник
Из VBA запускаю проводник в нужную директорию
Shell "explorer.exe " & "w:\RIPGP_DataBase\", vbNormalFocus


можно ли (без особого шаманства) из тех 2000 фалов ней показать только те, в названии которых есть заданные символы (например 123)?

Как вариант открыть эти файлы ( там все *.htm)

http://www.sql.ru/forum/1247697/zapustit-iz-vba-provodnik-s-vybrannymi-faylami


Не сохраняется запись в главной таблице

Пятница, 27 Января 2017 г. 09:13 + в цитатник
Здравствуйте. Есть проблема в БД на Access+SQL server. В БД есть таблицы:
1)ЕжедОтчет (НомерОтчета - счетчик,ключевое;ТабНомер - целое; ФамилияИмяОтчество - строка;Дата - Дата;ЧасовВОтчете - число)
2)ЕжТрудоЗатрата(Код - счетчик, ключевое; Назначение - число, внешний ключ; ВремяНадокумент - одинарное число; Дата - Дата; Время - Время; Отчет -число, внешний ключ из таблицы (1))
Сделал форму для добавления отчета, форма связана с таблицей "ЕжедОтчет" и содержит подчиненную форму для заполнения содержания отчета - таблица(2). Вот как сохраняю запись в БД:
On Error GoTo ErrHandle
Dim Count As Integer
Count = 0
With Me.ЕжТрудоЗатратаОтчета.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
    If IsNull(![Объект]) Or IsNull(![ВремяНаДокумент]) Then
      Count = Count + 1
    End If
    .MoveNext
  Loop
End With
 Me.ЧасовВотчете = Forms![EzhetOtchet]![ЕжТрудоЗатратаОтчета].Form![ИтогЗаДень]
ErrHandle: If Count = 0 Then
If Me.СуммаЗатратЗаДень.Value <> "" Then
'If (Count = 0) And ((Поле45 - RepItog) > 0) Then
 If MsgBox("Вы подтверждаете распределение часов по задачам?", vbYesNo) = vbYes Then
 If СуммаЗатратЗаДень <= 8 Then
 If СуммаЗатратЗаДень > 0 Then
 DoCmd.SetWarnings False
 DoCmd.OpenQuery "ОбновлениеОстатковВремени", , acEdit
DoCmd.OpenQuery "ОбновлениеОстатковЧасов", , acEdit
 MsgBox "Отчет принят.Спасибо Вам за работу!", vbOKOnly
  DoCmd.SetWarnings True
 ТекЗадачи.Requery

 DoCmd.Close acForm, "EzhetOtchet", acSaveYes
 Else
 MsgBox "Превышена длительность рабочего дня. Объем трудозатрат за день не должен превышать 8 часов. Отчет не может быть отправлен", vbOKOnly
 End If
 End If
End If
Else: MsgBox "Отчет заполнен не верно и не может быть отправлен.Проверьте заполнение отчета.Возможны ошибки:превышено допустимое время для распределения трудозатрат в отчете за день;" _
& "не выбраны работы из списка текущих задач;" _
& "введены трудозатраты в пустые строки отчета без выбора работ из списка;" _
& "необходимые работы выбраны из списка,введены в отчет,но по ним не заданы трудозатраты - не заполнено поле ЧасовФакт"
MsgBox "Нажмите кнопку ""Исправить ошибки заполнения отчета"",после чего проверьте заполнение отчета в результате исправления и повторите отправку,если считаете,что отчет заполнен корректно.Если некоторые позиции в результате исправления были удалены,повторите ввод данных позиций,соблюдая правила заполнения отчета"
Кнопка23.Enabled = False
End If
Else
MsgBox "При сохранении отчета произошла ошибка. Сформируйте отчет еще раз"
With Me.ЕжТрудоЗатратаОтчета.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
    .Delete
    
    .MoveNext
  Loop
End With
Me.Undo
DoCmd.Close acForm, "EzhetOtchet", acSaveNo
End If

Проблема в том, что не всегда срабатывает сохранение данных - не сохраняется запись в главной таблице "ЕжедОтчет". Это происходит при возрастании нагрузки на сервер и увеличении времени задержки доступа. Как бороться с этим? помогите пожалуйста.

http://www.sql.ru/forum/1247643/ne-sohranyaetsya-zapis-v-glavnoy-tablice


Cоздать таблицу в отдалённой базе данных

Четверг, 26 Января 2017 г. 16:17 + в цитатник
привет, я хочу запустит макрос с Access программы "A.accdb" штоб он удалит в базе даних "B.accdb" таблицу "TableXXX" и создал тамже новую таблицу из Excel фаила "C.xlsx"

удалит я умею о неумею создать

Sub DeleteTable()

Const remoteDatabase As String = "Z:\Swedwood KR\Other\Task system\DataBase\UVDB.accdb"
Const PW             As String = "passwords"
Const Tablename      As String = "Elephant"

Dim ws As DAO.Workspace
Dim db As DAO.Database
   
    Set ws = DBEngine.Workspaces(0)
    
        Set db = ws.OpenDatabase(remoteDatabase, False, False, "MS Access;PWD=" & PW)
    
            'Delete the table
            db.Execute "DROP TABLE [" & Tablename & "]", dbFailOnError
            
            'insert table
            'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
            
        Set db = Nothing
        
        
    Set ws = Nothing
End Sub


как эта заделать на удаленной DB:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
    "Elephant", "Z:\C.xlsx", True, "A1:L100"
endSub:

http://www.sql.ru/forum/1247555/cozdat-tablicu-v-otdalyonnoy-baze-dannyh


combobox

Четверг, 26 Января 2017 г. 13:31 + в цитатник
нужно программно присвоить значение полю combobox, имеющему для столбца - 1 невидимый. как ?
то есть при открытии формы в этом поле уже должно быть значение, но не по умолчанию, а вычисляемое.

http://www.sql.ru/forum/1247514/combobox


Inner Join для двух селектов

Четверг, 26 Января 2017 г. 12:16 + в цитатник
Доброго времени суток, подскажите, как написать запрос в ACCESS, чтобы объединить два SELECT

Как-то так
SELECT FIO, COUNT(..) WHERE .. ORDER BY ..
INNER JOIN
SELECT FIO, COUNT(что-то другое) WHERE .. ORDER BY ..
ON (а вот тут как писать? обычно Table1.FIO=Table2.FIO, а наши то таблицы никак не названы)

Спасибо

http://www.sql.ru/forum/1247501/inner-join-dlya-dvuh-selektov


Вычисляемое поле

Четверг, 26 Января 2017 г. 09:02 + в цитатник
На форме имеется поле_1, в которое попадает результат запроса на подсчет количества записей (count) из таблицы по заданным условиям.
Необходимо в поле_2 рассчитать: "поле_1 / 12".
Помогите пожалуйста.

http://www.sql.ru/forum/1247459/vychislyaemoe-pole


Работа с заголовком и уровнями группировки при программном создании отчета

Четверг, 26 Января 2017 г. 00:31 + в цитатник
Здравствуйте!

При программном создании отчета возникли три вопроса,
но посвящать каждому отдельную тему, наверное не стоит.
Вот эти вопросы.

1-й вопрос. При создании контрола в области заголовка
Set Ctl = CreateReportControl(.Name, acLabel, acHeader, , "", 0, 0, .Width, 0.582 * TWIP)
заголовок должен уже существовать, то есть в меню Строка меню —> Вид
должен быть включен переключатель Заголовок/примечание отчета.
Для этого применяю
DoCmd.RunCommand acCmdReportHdrFtr
Но поскольку это переключатель, то применение этой команды при уже существующем заголовке
приведет к исчезновению этого заголовка.
Отсюда вопрос: Как узнать заранее, есть ли уже заголовок?
Пока делаю так:
Dim H As Single
On Error Resume Next
H = .Section(acHeader).Height
If Err.Number = 2462 Then
 DoCmd.RunCommand acCmdReportHdrFtr
End If
On Error GoTo 0
Но может есть способ лучше?

2-й вопрос. Создаю группу с заголовком
Dim varGroupLevel As Variant
varGroupLevel = CreateGroupLevel(.Name, "=True", True, False)
После этого создаю контролы в заголовке созданной группы
Set Ctl = CreateReportControl(.Name, acLabel, acGroupLevel?Header,....)
Вместо выделенного красным вопросительного знака нужно указать
номер созданного уровня группировки - от 1 до 10.
Отсюда вопрос: Как узнать номер созданного уровня группировки?
Хотя .GroupLevel это массив, но UBound(.GroupLevel) применить не удалось.
Поэтому делаю так:
Dim B As Boolean, _
    i As Byte, _
    K As Byte
On Error Resume Next
For i = 0 To 9
 B = .GroupLevel(i).GroupHeader
 If Err = 2464 Then
  Exit For
 End If
Next
On Error Resume Next
K = 2 * i + 3
Set Ctl = CreateReportControl(.Name, acLabel, K,.....)
Но хорошо ли это?
Как сделать правильнее?

3-й вопрос. Можно ли программно удалить определенный уровень группировки (группу)?
Если можно, то как?

_____________________________________________________________
Пояснения:
а) Используется запись с точками .Name/.Section/... потому, что все это находится внутри With <отчет> ..... End With.
б) Конечно, в отдельных случаях я могу и знать, есть уже заголовок или нет, как и номер уровня группировки.
Но хочется сделать в общем виде.

http://www.sql.ru/forum/1247439/rabota-s-zagolovkom-i-urovnyami-gruppirovki-pri-programmnom-sozdanii-otcheta


Значение полей формы из предыдущей записи

Среда, 25 Января 2017 г. 11:22 + в цитатник
Здравствуйте. Помогите, пожалуйста, решить задачу.

Есть форма, поля ID, a и b.
ID - счетчик
a - число
b - текстовое

Нужно, чтобы при создании новой записи, предыдущие данные полей a и b появлялись по умолчанию в соответствующих полях формы.
Сортировка происходит по полю ID.
Данные в поле ID не непрерывные - некоторые записи периодически удаляются.
После создания новой записи, нужно, чтобы данные полей a и b можно было редактировать.
Вариант поставить на событие Выход Me![a].DefaultValue = Me![a].Value не проходит, так как предполагает создание новой записи вслед за текущей. В моем варианте новая запись может быть создана при нахождении в любой записи.
В запросе работает:
DLookUp("[a]";"Data";"ID=" & DMax("ID";"Data";"ID<" & [Data].[ID])) As d
Но тут данные кладутся в другое поле (d), а мне надо, чтобы появлялись в поле a (числовом), и чтоб потом его отредактировать можно было.
Так же и с полем b (текстовым).
База во вложении.

http://www.sql.ru/forum/1247318/znachenie-poley-formy-iz-predydushhey-zapisi


Не формируется отчет

Вторник, 24 Января 2017 г. 18:40 + в цитатник
Приветствую!


Не получается сделать два задания, вроде делаю все правильно.
Создайте отчеты по итогам сессии.
a. В первом отчете оценки студентов должны быть сгруппированы по номерам групп и дисциплинам. Для каждой группы рассчитать среднее значение оценок по всем предметам.
Примечание. Вычисления в отчете добавляются в режиме Конструктора.
b. Во втором отчете сгруппировать студентов по группам и фамилиям. Для каждого студента должна вычисляться средняя оценка в сессию, аналогично среднему баллу по каждому предмету в предыдущем отчете.

В первом случае не везде считает итог(дисциплина test)
Во втором не выводит оценки вообще.

Подскажите, в чем ошибка?

http://www.sql.ru/forum/1247242/ne-formiruetsya-otchet


Как глобально отключить Run-time error 3059 Operation canceled by user?

Вторник, 24 Января 2017 г. 12:00 + в цитатник
Доброе время суток,

Имеется mdb база в MS Access 2010. Как сделать так чтобы вышеуказанная ошибка не выскакивала во всем приложении, а не только в тех местах где я принудительно прописываю обработчик ошибок?

http://www.sql.ru/forum/1247158/kak-globalno-otkluchit-run-time-error-3059-operation-canceled-by-user


Как организовать переход по Tab между вкладками элемента управления Tab Control?

Вторник, 24 Января 2017 г. 04:59 + в цитатник
Здравствуйте!
Использую в форме элемент управления Набор Вкладок (Tab Control).
Подскажите, как организовать переход по Tab между вкладками этого элемента управления? Не могу никак разобраться...

http://www.sql.ru/forum/1247125/kak-organizovat-perehod-po-tab-mezhdu-vkladkami-elementa-upravleniya-tab-control


Макрос для Excel 2007 выгрузить таблицу из Access 2007

Понедельник, 23 Января 2017 г. 18:09 + в цитатник
Имеется база Access 2007 это файл baza.mdb
Полный путь к базе: \\serv\pod\baza.mdb (свободный доступ в сети)
В базе таблица "Контрагенты" в которой 2 поля: "Код" "Наименование"
Нужен макрос(в Excel файле) чтобы на лист Excel 2007 просто выгружалось содержимое таблицы "Контрагенты"
Про экспорт из Access в Excel файл я знаю, но так не нужно.

Заранее благодарен!

http://www.sql.ru/forum/1247090/makros-dlya-excel-2007-vygruzit-tablicu-iz-access-2007


Проблемы с Microsoft Graph 97 Chart в Windows 7 и выше

Понедельник, 23 Января 2017 г. 12:56 + в цитатник
А97 (Ну, есть у нас клиенты, которым ничего не надо другого)
В среде Windows XP никаких проблем. Работает, как часы.
Но, XP умерло...
В 7-ке граф ничего не показывет. Вообще, голый, как будто невидим. Правда, если формой "повозить" по экрану, так, чтобы границы графика зашли за экран, граф вдруг появляется. Так же, если увести фокус с формы на другую форму, а потом вернуться к форме с графом, тоже все появляется. Я рытался уводить фокус програмно - дудки - не работает!
Есть еще одна проблема: граф обрезается справа. Примерно четверть данных не показывается... Ну, с этим, наверное, можно будет побороться, добавив нксуществующие данные. Но что делать с первым?

http://www.sql.ru/forum/1247020/problemy-s-microsoft-graph-97-chart-v-windows-7-i-vyshe


А mde шки кто лечил и как если да ?

Понедельник, 23 Января 2017 г. 09:10 + в цитатник
Бывают (хоть и редко) случаи, когда вместе с компом на одной фазе висит (например) промышленный холодильник. При его включении содрогается комп, и иногда не выдерживает - идет на перезагруз... После этого (тоже иногда) при запуске mde получается комментарий - не распознаваемый формат базы данных (накрылся именно mde), и всё... Это понятно, что нужен бесперебойник, что нужно комп посадить на другую фазу, что mde можно заменить новым из дистрибутива - вопрос не в том, что делать в этой ситуации, вопрос в том - как так может ломаться mde (чисто программа) и можно ли его восстановить? Как делать пересадку органа знаю, а вот как вылечить больной без пересадки...

http://www.sql.ru/forum/1246976/a-mde-shki-kto-lechil-i-kak-esli-da


Как обратиться по имени к запросу с параметрами в базе Access c помощью ADO

Понедельник, 23 Января 2017 г. 01:31 + в цитатник
Здравствуйте. Определите, пожалуйста, в чем ошибка.

Есть база данных accdb, в ней есть запрос на выборку с параметрами. Хочу открыть этот запрос с помощью ADO. Обращаюсь к запросу по его имени.
Dim q = New ADODB.Command
q.ActiveConnection = cnn
q.CommandText = "Имя Запроса"
q.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
q.Parameters.Append(q.CreateParameter("Имя параметра", adVarChar, adParamInput))
В последней строке возникает ошибка: "Неправильно определен объект Parameter. Предоставлены несогласованные или неполные сведения". Параметр запроса текстовый.

http://www.sql.ru/forum/1246966/kak-obratitsya-po-imeni-k-zaprosu-s-parametrami-v-baze-access-c-pomoshhu-ado


Microsoft Office Acces - Решение ошибки диспетчера кнопочных форм (msado21.tlb)

Воскресенье, 22 Января 2017 г. 13:26 + в цитатник
Здравствуйте :-)
Решил поделиться с вами, как решить данную проблему.

Если у вас жёсткий диск, то для этого нам потребуется:
  • CMD
  • Дефрагментация диска

    Далее, запускаем cmd.exe с правами Администратора.

    Желательно, если вы это будете делать на ночь, так как процесс может быть длительный и зависит он от типа вашего железа.

    В открывшемся окне нужно прописать вот эту команду:
    chkdsk /f /r /x
    

    Затем компьютер необходимо перезапустить, чтобы начать процесс с восстановлением и исправлением секторов.
    Ждём какое-то время, у нас это будет утро, сразу же выполняем дефрагментацию диска.

    Проверяем работу диспетчера кнопочных форм в Microsoft Office Access.

    Живём и радуемся! :-)

    Благодарю всех за внимательное прочтение!
  • http://www.sql.ru/forum/1246918/microsoft-office-acces-reshenie-oshibki-dispetchera-knopochnyh-form-msado21-tlb


    Табель учёта рабочего времени

    Воскресенье, 22 Января 2017 г. 08:25 + в цитатник
    Всем божественным злыдням здравия во все органы.
    Так как я практически только начинающий и многих моментов не знаю, то попрошу великознающих богов Access помочь в оптимизации процедур, а именно:
    Идя по наипростейшему пути у подформ в источнике записей прописал в запросе что есть сей день, типа суббота или воскресенье, для визуального ублажения глаз и выдедения сих дней розовеньким цветом.
    И т. к. трудностей и нудной работы не особо боюсь, то написал и копировал процедурки с изменениями имен полей немеряно.
    Осознаю, что это не камильфо и возможно оптимизировать сей момент, но не знаю как, т. к. опыта и знаниёф не хватает.
    А т. к. по слухам сей достославный подраздел форума много лет назад славился частым присутствием множества Богов в Access, то если не трудно подмочь мне, всему такому несовершенному и обрести более изощьренную способность в написании процедур, то слёзно прошу не отказать в обретении счастья и успокоения души.

    http://www.sql.ru/forum/1246903/tabel-uchyota-rabochego-vremeni


    RecourdSource in Access for SQL хранимой процедуры

    Пятница, 20 Января 2017 г. 10:01 + в цитатник
    На сервере существует хранимая процедура с именем "proc_selectpat"

    SELECT p.id_pat, p.birthday, p.address, p.phone, p.note FROM dbo.pat p
    


    В Access хочу форме с источником присвоить вышеуказанный запрос. Какую еще команду добавить, чтобы источник формы получил значения?

    Private Sub Form_Load()
        Set cdb = CurrentDb
        Set qdf = cdb.CreateQueryDef("")
        qdf.Connect = "ODBC;" & _
                "Driver={SQL Server Native Client 11.0};" & _
                "Server=SQL;" & _
                "Database=PPPPPPP; UID=PPP; PWD=PPPPPPPP;" & _
                "Trusted_Connection=yes;"
        qdf.SQL = "EXEC proc_selectpat"
            
            Me.RecordSource = "??????????"
            
        qdf.ReturnsRecords = False
        qdf.Execute dbFailOnError
        Set qdf = Nothing
        Set cdb = Nothing
    End Sub
    

    http://www.sql.ru/forum/1246719/recourdsource-in-access-for-sql-hranimoy-procedury


    Как передать пустой параметр запроса логического поля ms access

    Пятница, 20 Января 2017 г. 07:25 + в цитатник
    Как вывести все записи логического поля? Ложь Истина выводит по отдельности. А что нужно передать чтобы получить все записи?
    Код моего запроса:
    ((Protokol.IsPlan)=IIf([Forms]![Отчет]![Группа100]=1,(Protokol.IsPlan) Like "",IIf([Forms]![Отчет]![Группа100]=2,0,IIf([Forms]![Отчет]![Группа100]=3,-1))))
    

    http://www.sql.ru/forum/1246701/kak-peredat-pustoy-parametr-zaprosa-logicheskogo-polya-ms-access


    Таблица не может быть заблокирована после OutputTo

    Четверг, 19 Января 2017 г. 11:12 + в цитатник
    Добрый день.

    Есть таблица (временная). По таблице строится отчет. В отчете есть кнопка, по нажатию которой отчет экспортируется. После этого отчет закрывается (вручную через "крестик") и таблицу нужно удалить, но это не получается - возникает ошибка "Таблица не может быть заблокирована ядром базы данных. Она уже используется другим пользователем или процессом". Для экспорта изначально использовался макрос с макрокомандой "ЭкспортСФорматирование", я переделал на процедуру с использованием OutputTo - ничего не изменилось. А если использовать TransferSpreadsheet, то все работает как надо, но отчет получается некрасивый. Подскажите, в чем здесь дело, как это побороть.
    Заранее премного благодарен.

    http://www.sql.ru/forum/1246579/tablica-ne-mozhet-byt-zablokirovana-posle-outputto



    Поиск сообщений в rss_sql_ru_access_programming
    Страницы: 353 ... 243 242 [241] 240 239 ..
    .. 1 Календарь