Ярлыки

(16) 1С 8.3 (1) 2GIS (1) автоактивация (3) Активация (3) Андроид (113) Антивирус (2) Аудио (2) биоритмы (1) Блок питания (22) боль в спине (1) браузер (2) бросить курить (1) буквы соответствие (1) бумажник (1) бюджетирование (1) ВАЗ 2110 (1) вацап (1) видеонаблюдение (8) Видеосвязь (1) гаджет (1) Галстук (1) геокоординаты (1) дача (1) для дома (1) дом (2) драйвера (6) Дубликаты (1) еда (1) запись (1) Зарядка акб (1) Зарядное устройство (1) звук (4) здоровье (8) знаки зодиака (1) зрение (1) игнтернет (1) иероглифы (1) Изделия из дерева (1) Интернет (10) Интернет-магазины (3) Кино (1) ключница (1) Книги Журналы (1) кожаная обувь (4) командная строка (1) конвертор (1) кошелек (1) кресло-качалка (1) кухня (2) Лекарства (1) логика (1) макрос (1) медицина (1) мозги (1) морщины (2) мтс (1) музыка (9) мультики (1) Мыльные_пузыри (1) Натуральная кожа (56) Облако (1) омск (1) Он Лаин библиотеки (1) органайзер (1) оригами (1) Отбеливание (1) отслеживание посылок (1) Папка (1) Пароли (2) пароль (3) партмоне (1) парфюм (1) переименование файлов (1) питание (1) Планшет (5) поза сна (1) поздравление (1) поиск (1) поиск дублей (1) поисковик (1) Полезные сайты (1) портабле (2) принтер (4) Программы (58) простуда (1) расширения (1) редактор музыкальных файлов (1) Русский язык (1) рут (2) сеть (8) Скрыть информацию (1) Стиль (1) стихи (2) сумка (1) суставы (3) теги (1) трек-номер (1) тренинг (1) тренинг памяти (1) удаленный доступ (2) узлы (1) УНЧ (3) Управление компьютером (2) Управленческий учет (2) Успокоительные средства (1) фильмы (2) Флешка (53) фото (2) цвета в одежде (1) цена (1) экран не гаснет (1) эл почта (2) Ютуб (1) Access (10) Acronis True Image WD Edition (1) AliExpress (1) ALT-коды (1) audi (1) Avira Antivirus (1) bat (2) BIOS (4) chrom (15) Chrome (2) Cube iPlay 10 U83 (1) Dism++ (2) epson 1260 (1) ERD Commander (1) Excel (42) Faceter (1) Firefox (1) GHOST32 (4) gif анимация (1) Google (1) Google Hrome (1) Google Play (1) Grub4Dos (7) HDD (1) Honor (1) HP USB Disk Storage Tool (1) IPTV (1) KPI (1) Linux (16) NirCmd (1) office (4) PDF (1) Pinterest (1) portable (2) Prestigio3502 (1) Rufus (2) SSD (1) torrent (1) UEFI (1) VBA (42) WEB ресурсы (2) WiFi (2) Windows (77) Windows 10 (5) Windows 11 (2) Windows 7 (24) YouTube (15)
Показаны сообщения с ярлыком Access. Показать все сообщения
Показаны сообщения с ярлыком Access. Показать все сообщения

воскресенье, 15 мая 2016 г.

Отключение сообщений в access

2.4. Использование DoCmd.RunSQL.
Иногда советуют поставить DoCmd.SetWarnings False передDoCmd.RunSQL, но это крайне опасно. Это требует добавить DoCmd.SetWarnings True где только можно, особенно в обработчиках ошибок. В противном случае Аксесс в какой-нибудь момент вообще перестанет выдавать предупреждения на удаление и т.п. (в том числе и предупреждения об ошибках) до конца работы программы. Также есть возможность, что в отладочный период Вы остановите выполнение кода ДО включения сообщений, что тоже повлечёт за собой выше описанный результат. Но если Вы решили использовать данную конструкцию, то используйте её следующим образом.

On Error Goto mis ...
DoCmd.SetWarnings False
DoCmd.RunSQL ...
DoCmd.SetWarnings True ...
Exit Sub mis:
DoCmd.SetWarnings True

2.5. Противопоказания к использованию конструкции Application.SetOption
Подтверждения исчезнут во всей аппликации насквозь, в том числе там, где это не планировалось. Это можно делать только в том случае, если соблюдены два условия:
Пользователь лишен права на удаление тех объектов, которые нужны для нормальной работы программы, и его устраивает отсутствие подтверждений при удалении/редактировании данных через экран.
Подтверждения не отключаются, если в приложении работает сам разработчик.

2.6. Возможность отката
Нередко возникает необходимость при возникновении ошибок отменить результат исполнения целого ряда запросов. DoCmd.RunSQL такой возможности не дает. CurrentDb.Execute, в отличие от него, позволяет откатить транзакцию, в которую включено то, что посчитает нужным программист. В CurrentDb.Execute есть опция dbFailOnError - она относится только к выполнению конкретного запроса, т.е. отвечает только за то, будет ли запрос при ошибке откачен целиком и будет возвращена ошибка, или же возможно частичное выполнение запроса.
Пример отката внешней транзакции:
Public Function Test() On Error Goto Rollback_Label DBEngine(0).BeginTrans CurrentDb.Execute "Запрос1", dbFailOnError CurrentDb.Execute "Запрос2", dbFailOnError CurrentDb.Execute "Запрос3", dbFailOnError DBEngine(0).CommitTrans Exit_Label: Exit Function Rollback_Label: DBEngine(0).Rollback Resume Exit_Label End Function

В данном случае если не выполнится хотя бы один запрос, то все запросы "откатятся".

вторник, 9 июня 2015 г.

PrintOut VBA


Печатайте на принтер Excel

Application.ActivePrinter = "MyPrinter"

или

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="MyPrinter"

При этом активный принтер компьютера менять не надо. =======================================================
ActiveSheet.PrintOut ActivePrinter:="HP LaserJet 5L" 

Range("A1:C10").PrintOut 

ActivePrinter:="HP LaserJet 5L (LPT1:)" 

ThisWorkbook.Worksheets(1).Range("B2:C10").PrintOut 

Предполагается, что распечатать нужно только ячейки и графические об'екты диапазона B2:C10 первого рабочего листа текущей рабочей книги.

If Worksheets("киоски").Range("F4").Value <> "" Then 

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=3, Copies:=1, Collate:=True

Else

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=4, Copies:=1, Collate:=True

If Worksheets("киоски").Range("F4").Value <> "" and 

Worksheets("киоски").Range("E4").Value <> "" Then 

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate:=True

Else

ActiveWindow.SelectedSheets.PrintOut From:=1, To:=4, Copies:=1, Collate:=True

понедельник, 1 июня 2015 г.

Синтаксис DoCmd

Условия отбора для строковых значений
DoCmd.OpenReport "Сотрудники", acViewNormal, , "[cust_Fam]=" & "'" & Me![sd_Fam] & "'"
то есть
DoCmd.OpenReport "Сотрудники", acViewNormal, , "[cust_Fam]='Иванов'"


Условия отбора для числовых значений
DoCmd.OpenReport "Продажи", acViewNormal, , "[cust_id]=" & Me![cust_ID]


Вот еще пример
Private Sub Кнопка10_Сlick()
'Открыть таблицу DoCmd.OpenTable «Учащиеся», acNormal, acEdit
'Выделить объект - таблицу Учащиеся 
DoCmd.SelectObject acTable, «Учащиеся», True 
'Открыть форму Форма1
'DoCmd.OpenForm «Форма1», acNormal, "", "",, acNormal
DoCmd.OpenForm «Форма_с_кнопкой», acNormal, "", "", ,acNormal
DoCmd.ApplyFilter "", «[Учащиеся]![Пол]=Тгие»
End Sub

вторник, 24 июня 2014 г.

Как в ACCESS получить по текущей дате, дату начала месяца?

Содержат дату, которая приходится на текущий месяц

Year([ДатаПродажи]) = Year(Now()) And Month([ДатаПродажи]) = Month(Now())

firstdate=DateAdd("d",1-day(Date()),Date())

office.microsoft.com

воскресенье, 22 июня 2014 г.

DlookUP Access

Указание числового критерия:

 Чтобы найти фамилию сотрудника с кодом 7, укажите критерий, ограничивающий диапазон значений:
=DLookup("[LastName]", "Employees", "[EmployeeID] = 7")

 Указание числового критерия из поля формы:

 Если вы не хотите указать конкретное значение в выражении (как в предыдущем примере),  используйте параметр в критерии.
 =DLookup("[LastName]", "Employees", _
 "[EmployeeID] = Form![EmployeeID]")

 =DLookup("[LastName]", "Employees", _
 "[EmployeeID] = " & [EmployeeID])

 =DLookup("[LastName]", "Employees", _
 "[EmployeeID] = " & Forms![Orders]![EmployeeID])

 Эти три примера возвращают одинаковые результаты.

 В первом примере формы!
 "[EmployeeID] = [EmployeeID]"

 вычисляется как:
 "1 = 1"

 и поэтому будет первой записью, соответствующей критерию.

 Критерий в двух примерах выполняются путем сцепления двух строковых выражений с
 амперсанда (&).

 При вычислении критерия первой и присоединенных или сцепленные вычисляются отдельные
 части критерия, а затем вычисляется все выражение.

 Если текущее значение поля EmployeeID формы Orders равно 7, исходное выражение
 критерия
 "[EmployeeID] = " & [EmployeeID]

 будет вычисляться как
 "[EmployeeID] = " & 7

 что после объединения дает для:
 "[EmployeeID] = 7"

 Если не указать ссылку полной формы (как во втором примере), Microsoft Access
предполагает, что вы ссылаетесь на текущую форму.

Следующий пример является производным от третьего примера:
=DLookup("[LastName]", "Employees", _
"[EmployeeID] = Forms![Orders]![EmployeeID]")

В этом примере ссылки на формы полностью заключен внутри кавычек критерия.

Если поле Чтобы автоматически обновлять при изменении критерия, сделайте критерий
переменной с помощью способ объединения частей выражения, как описано ранее.
Обратите внимание, что при переходе к новой записи DLookup() текстовые поля, которые
обновляются автоматически будет иметь # Ошибка в них, то, что вводится в поле
EmployeeID поле.

Указание текстового критерия:


Приведенные выше примеры демонстрируют использование функции DLookup() с числовым
критерием.
=DLookup("[Title]", "Employees", "[LastName] = 'Callahan'")

Обратите внимание, что можно использовать двойные кавычки, а не одинарные
кавычки, хотя одинарных кавычек является более предпочтительным.
=DLookup("[Title]", "Employees", "[LastName] = ""Callahan""")

Указание текстового критерия из поля формы:

Следующем примере показано, как найти название контракта для клиента в форме
Orders. Поле CustomerID является текстовым полем критерия, поэтому DLookup()
инструкции:
=DLookup("[ContactName]", "[Customers]", _
"[CustomerID]='" & [CustomerID] & "'")

–ИЛИ-
=DLookup("[ContactName]", "[Customers]", _
"[CustomerID]='" & Forms![Orders]![CustomerID] & "'")

Во втором примере критерий создается путем объединения трех строковых выражений.
Во-первых, "[CustomerID] = '", вторым – значение, содержащееся в поле CustomerID,
а третий — закрывающей одиночной кавычки заключены в двойные кавычки.


При вычислении этого критерия сначала вычисляются отдельные части и их результаты
складываются или объединяются. Затем вычисляется все выражение.

Если текущее значение выбранного в поле со списком CustomerID в форме Заказы
Alfreds Futterkiste, присоединенный столбец для поля со списком возвращает ALFKI как
CustomerID. Исходное выражение критерия
"[CustomerID] = '" & [CustomerID] & "'"

вычисляется как
"[CustomerID] = '" & "ALFKI" & "'"

что после объединения дает
"[CustomerID] = 'ALFKI'"

Указание даты:


Если поля критерия содержат значения даты или времени, заключите значение даты
или времени в знаки номера (#). Чтобы найти сотрудника, день рождения которого
приходится на определенную дату, воспользуйтесь следующим примером:
=DLookup("[LastName]", "Employees", "[BirthDate] = #12-08-68#")

Указание нескольких полей в критерии:

Выражение условия может быть любой допустимый предложение SQL WHERE (без
ключевого слова ГДЕ). Это означает, что можно использовать более одного поля для
указания критерия для функции DLookup() .

Чтобы найти код заказа один из заказов, проданных сотрудником «Андрей Фокин» с
EmployeeID 2 (числовой) для клиента «Simons bistro» с CustomerID из SIMOB (текст),
используйте следующую инструкцию DLookup() образца:
=DLookup("[OrderID]", "Orders", _
"[CustomerID] = 'SIMOB' And [EmployeeID] = 2")

Этот оператор возвращает значение OrderID 10556, который является значением первого поля OrderID, соответствующего заданному критерию. OrderID 10669 также соответствует критериям.
Приведенный выше пример использует жестко запрограммированные или специальные значения CustomerID и EmployeeID. Чтобы использовать переменные вместо специфических значений критерия, можно использовать для объединения нескольких строковых выражений Visual Basic для приложений. Этот метод демонстрируется в следующем примере Visual Basic:
Sub subTest
'Declare the variables.
Dim CustID As String
Dim EmpID As Long
Dim Result

'Assign values to the variables to be used in the criteria.
CustID = "SIMOB"
EmpID = 2
Result = DLookup("[OrderID]", "Orders", _
"[CustomerID] = '" & CustID & "' And [EmployeeID] = " & EmpID)

MsgBox Result
End Sub
Если функция DLookup() завершается неудачно, результат переменная содержит значение Null.
Обратите внимание, что критерий состоит из четырех частей, которые оцениваются по отдельности. Результаты добавляются и оцениваются в целом. Исходное выражение критерия: "[CustomerID] = '" & CustID & "' And [EmployeeID] = " & EmpID

вычисляется как
"[CustomerID] = '" & "SIMOB" & "' And [EmployeeID] = " & 2

что после объединения дает
"[CustomerID] = 'SIMOB' And [EmployeeID] = 2"

Следующий пример можно использовать для нахождения сотрудника, день рождения которого
совпадает с текущей датой:
=DLookup("[LastName]", "Employees", _
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) _
= " & Day(Date))

Если текущая дата — 2/12/2001, исходное выражение критерия
"Month([BirthDate]) = " & Month(Date) & " And Day([BirthDate]) = " _
& Day(Date)

вычисляется как
"Month([BirthDate]) = " & 12 & " And Day([BirthDate]) = " & 2

что после объединения дает
"Month([BirthDate]) = 12 And Day([BirthDate]) = 2"

суббота, 21 июня 2014 г.

Обновление поля со списком в ACCESS

Используйте
Private Sub Form_Current ()
Me.ПолеСоСписком20.Requery
End Sub

Отключение сообщений в Access

Используйте
Application.SetOption "Confirm Record Changes", False
Application.SetOption "Confirm Document Deletions", False
Application.SetOption "Confirm Action Queries", False

А так-же
On Error Goto mis 
... 
DoCmd.SetWarnings False 
DoCmd.RunSQL 
... 
DoCmd.SetWarnings True 
... 
Exit Sub 
mis: 
DoCmd.SetWarnings True

понедельник, 10 марта 2014 г.

Access. Программное управление отчетом


Возможность изменять ориентацию, формат, принтер.
'Создайте отчет с именем "TestRep"
'Выполните следующий код в модуле Access:

Private Sub ReportSetup()
Dim prtFirst As Printer
Dim prtLoop As Printer
Dim s As String
Dim i As Long
'Подготавливаем список принтеров
For Each prtLoop In Application.Printers
    With prtLoop
        s = s & i & "-" & .DeviceName & "/" & "Driver name: " & .DriverName & " Port: " & .Port & VBA.vbCrLf
    End With
    i = i + 1
Next prtLoop

'Открываем отчет в режиме конструктора, в скрытом режиме
DoCmd.OpenReport "TestRep", acViewDesign, , , acHidden
'Предлагаем выбрать принтер из подготовленного выше списка
i = InputBox(s, "Введите номер принтера", 0)
'Настраиваем отчет на работу с выбранным принтером
Reports("TestRep").Printer = Application.Printers(i)
Set prtFirst = Reports("TestRep").Printer

' Раскомментируйте свойства принтера, значения которых хотите изменить программно
With prtFirst
'    .TopMargin = 1440
'    .BottomMargin = 1440
'    .LeftMargin = 1440
'    .RightMargin = 1440
'
'    .ColumnSpacing = 360
'    .RowSpacing = 360

'    .ColorMode = acPRCMColor
'    .DataOnly = False
'    .DefaultSize = False
'    .ItemSizeHeight = 2880
'    .ItemSizeWidth = 2880
'    .ItemLayout = acPRVerticalColumnLayout
'    .ItemsAcross = 6

'    .Copies = 1
'для примера меняем ориентацию отчета
If MsgBox("Выберите ориентацию, ДА - книжная , Нет - альбомная", vbYesNo) = vbYes Then
    .Orientation = acPRORPortrait
Else
    .Orientation = acPRORLandscape
End If
'    .Duplex = acPRDPVertical
'    .PaperBin = acPRBNAuto
'    .PaperSize = acPRPSA4 ' acPRPSLetter
'    .PrintQuality = acPRPQDraft ' acPRPQMedium
End With
'Закрываем отчет, сохраняя сделанные изменения
DoCmd.Close acReport, "TestRep", acSaveYes
'Открываем отчет в режиме просмотра
DoCmd.OpenReport "TestRep", acViewPreview
End Sub

суббота, 1 февраля 2014 г.

Создание всплывающего календаря

  1. Откройте учебную базу данных Борей.mdb.
  2. Создать новую форму на основе таблицы Orders и сохраните его как frmOrderDateForm.
  3. Добавьте поле со списком в форму и задайте для свойства ControlSource поля со списком для поля ДатаРазмещения.
  4. Вставьте в форму элемент управления Calendar. 

    Примечание: чтобы вставить элемент управления Calendar, щелкните элемент управления ActiveX, в меню Вставка, а затем выберите элемент управления Календарь или календарь управления 8.0 в зависимости от версии Access, 7.0 или 97.
  5. Задайте следующие свойства для элемента управления Calendar:
       Name: Calendar
       Visible: No
         
  6. Добавьте следующий код в событие MouseDown списком OrderDate:
    Private Sub OrderDate_MouseDown(Button As Integer, _
                                      Shift As Integer, X As Single, _
                                      Y As Single)
    ' Show Calendar and set its date.
       Calendar.Visible = True
       Calendar.SetFocus
       ' Set to today if OrderDate has no value.
       Calendar.Value = IIf(IsNull(OrderDate), Date, OrderDate.Value)
    End Sub
      
  7. Добавьте следующий код в событие Click элемента управления Calendar. 

    Примечание: Необходимо открыть один из списка событий, а затем измените это событие с событием Click.
    Private Sub Calendar_Click()
       ' Set OrderDate to the selected date and hide the calendar.
       OrderDate.Value = Calendar.Value
       OrderDate.SetFocus
       Calendar.Visible = False
    End Sub
         

  8. Сохраните форму и переключитесь в режим формы.
Calendar - имя календаря в свойствах
OrderDate - имя поля в свойствах

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