Використання діалогового вікна [Пошук і заміна] без вкладки Заміна, MS Office, Програмні керівництва, статті

При виклику діалогового вікна [Пошук і заміна] в ньому за замовчуванням з’являються дві вкладки: Пошук і Заміна. Якщо Ви не хочете, щоб вкладка Заміна з’являлася, необхідно перед викликом вікна пошуку заборонити зміна записів у формі і тоді вкладка Заміна не з’являється.

З програмного коду це легко можна зробити так:


Me.Поле.SetFocus “перенесемо фокус введення в шукане текстове поле,


“Не можна фокус введення залишати на кнопці в будь-якому разі
Me.AllowEdits = False “заборонимо зміна записів
RunCommand acCmdFind “викликаємо діалогове вікно Пошук і Заміна
Me.AllowEdits = True “відразу ж дозволяємо зміна записів
 


І зміна записів у формі допускається і вікно пошуку відображається тільки з однією вкладкою [Пошук] – більш просте і зрозуміле для користувачів.


Вікно [Пошук і заміна] є плаваючим і тут виявляється цікавий ефект: якщо користувач, не закриваючи вікна пошуку, перейде до форми (неважливо, що він там робити буде) і знову перейде до діалогового вікна пошуку, то у вікні пошуку автоматично з’явиться вкладка Заміна – адже в даний момент запису на формі вже не є забороненими редагуванням …..


Я не поки не знайду, як можна управляти з програмного коду опціями вікна [Пошук і заміна] …. Ну, збіг налаштовується в Параметрах-> Правка і пошук … а інші? За допомогою SendKeys? Виникає проблема з розкладкою клавіатури, та й не красиво це … API? теж вельми нетривіально …


На мою думку, найбільш оптимальний спосіб – створити свою форму для пошуку. Функціональність своєї форми пошуку можна задати будь-який, а також налаштувати на свій смак зовнішній вигляд.


Ось рішення, запропоноване Dev Ashish – але, по суті, нічого нового він не вносить.


Access 2000 не дає можливості настроювати вид діалогового вікна [Пошук і заміна]. Однак, якщо ви встановите властивість таблиці “тільки для читання” перед викликом цього діалогового вікна, Access автоматично приховає вкладку Замінити, тому, що користувач не може вносити зміни в режимі “тільки для читання”.


Наступні процедури показують, як відкривати форму і таблицю в режимі “тільки для читання” і викликати діалогове вікно [Пошук і заміна]:


” ***** Code Start *********


” This code was originally written by Dev Ashish.


” It is not to be altered or distributed,


” except as part of an application.


” You are free to use it in any application,


” provided the copyright notice is left unchanged.


” Code Courtesy of


” Dev Ashish


Sub sFindReplaceInForm(strFormName As String)


On Error GoTo ErrHandler


Const ERR_GENERIC = vbObjectError + 6666


” Open the form


DoCmd.OpenForm strFormName, acNormal


” now set it to ReadOnly


” The readonly mode will prevent the Replace


” dialog from showing up in the tab


With Forms(strFormName)


    .AllowAdditions = False


    .AllowDeletions = False


    .AllowEdits = False


End With


” select the Form in the UI


DoCmd.SelectObject acForm, strFormName, False


” Display the Find/Replace dialog


DoCmd.RunCommand acCmdFind


ExitHere:


    Exit Sub


ErrHandler:


    Resume ExitHere


End Sub


Sub sFindReplaceInTable(strTableName As String)


On Error GoTo ErrHandler


Const ERR_GENERIC = vbObjectError + 6666


” Open the Table


” The readonly mode will prevent the Replace


” dialog from showing up in the tab


DoCmd.OpenTable strTableName, acViewNormal, acReadOnly


” select the table in the UI


DoCmd.SelectObject acTable, strTableName, False


” Display the Find/Replace dialog


DoCmd.RunCommand acCmdFind


ExitHere:


    Exit Sub


ErrHandler:


    Resume ExitHere


End Sub


” ******** Code End *********

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*