Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2013, 23:10   #1
Adidas7
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 40
По умолчанию Кнопка для добавления фото в форме

Здравствуйте, добрые люди! Мне нужно, чтобы фото брались из любой папки, а не из определенной. У меня есть коды. Помогите мне их изменить. Простите, я плохо разбираюсь в VBA.
Код:
Private Sub Form_Current()
On Error Resume Next
a = DLookup("[PathPictureBook]", "[Личные данные]", _
            "[Код] = " & Me.Код)
If Len(Nz(" & a & ", "")) = 0 Then
Me![MyPic].Picture = ""
Else
strPath = CurrentProject.Path 'Определяем текущий путь
Me![MyPic].Picture = strPath & "\" & "HumanFoto" & "\" & a 'Отображаем картинку
End If
End Sub

Private Sub btnADD_Click()
On Error Resume Next
    Dim fileName As String
    Dim result As Integer
    Dim i As Integer

    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите изображение" 'Заголовок
        .Filters.Clear 'Очищаем фильтр
        .Filters.Add "Все файлы", "*.*"
        .Filters.Add "bmp", "*.bmp"
        .Filters.Add "gif", "*.gif"
        .Filters.Add "jpeg", "*.jpeg"
        .Filters.Add "jpg", "*.jpg"
       .FilterIndex = 1
        .AllowMultiSelect = False 'Отключаем множественный выбор
       .InitialFileName = " " 'Путь по умолчанию(текущая папка)
        result = .Show
        If (result <> 0) Then
            fileName = Trim(.SelectedItems.Item(1))
            i = InStrRev(fileName, "\") 'Высчитываем количество знаков до "\" файла
            Me![PathPictureBook].SetFocus 'Устанавливаем фокус
            Me![PathPictureBook].Text = Right(fileName, Len(fileName) - i) 'Название файла

            strPath = CurrentProject.Path 'Определяем текущий путь
            Me![MyPic].Picture = strPath & "\" & "HumanFoto" & "\" & Right(fileName, Len(fileName) - i) 'Отображаем картинку
        End If
    End With
End Sub
Adidas7 вне форума Ответить с цитированием
Старый 21.06.2013, 14:12   #2
Adidas7
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 40
По умолчанию

Здесь берутся фото из папки HumanFoto. А мне нужно, чтобы из любой папки. Поможете?
Adidas7 вне форума Ответить с цитированием
Старый 21.06.2013, 23:18   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Можно так
Код:
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку ", Optional ByVal InitialPath As String) As String
        GetFolderPath = ""
        With Application.FileDialog(msoFileDialogFolderPicker)
                .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath:
                If .Show = -1 Then GetFolderPath = .SelectedItems(1)
        End With
End Function

Private Sub Form_Current()
On Error Resume Next
a = DLookup("[PathPictureBook]", "[Личные данные]", _
            "[Код] = " & Me.Код)
If Len(Nz(" & a & ", "")) = 0 Then
Me![MyPic].Picture = ""
Else
strPath = GetFolderPath
Me![MyPic].Picture = strPath & "\" & a  'Отображаем картинку
End If
................
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 24.06.2013, 21:01   #4
Adidas7
Пользователь
 
Регистрация: 22.10.2012
Сообщений: 40
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Можно так
Код:
Function GetFolderPath(Optional ByVal Title As String = "Выберите папку ", Optional ByVal InitialPath As String) As String
        GetFolderPath = ""
        With Application.FileDialog(msoFileDialogFolderPicker)
                .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath:
                If .Show = -1 Then GetFolderPath = .SelectedItems(1)
        End With
End Function

Private Sub Form_Current()
On Error Resume Next
a = DLookup("[PathPictureBook]", "[Личные данные]", _
            "[Код] = " & Me.Код)
If Len(Nz(" & a & ", "")) = 0 Then
Me![MyPic].Picture = ""
Else
strPath = GetFolderPath
Me![MyPic].Picture = strPath & "\" & a  'Отображаем картинку
End If
................
Здесь при открытии формы открывается диалоговое окно... А мне нужно чтобы только при нажатии кнопки оно открывалось.
Adidas7 вне форума Ответить с цитированием
Старый 25.06.2013, 13:38   #5
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

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

Private Sub Form_Current()

и

.........

в подпрограмму обработки события "Нажатие кноки" (Click).
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поле "Дата" в форме для добавления новых записей в основную таблицу (Access) Zercon Помощь студентам 1 13.01.2013 14:41
кнопка в форме datgen Microsoft Office Access 2 12.06.2012 15:14
Проблема с регистрацией на сайте при добавления фото!!! mg1987 PHP 2 13.03.2011 02:12
кнопка в форме для создания отчета Sinopsis Microsoft Office Access 1 08.10.2010 04:27
Размещение информации из таблиц "Справочников" на форме для добавления-редактирования vovk БД в Delphi 9 15.06.2009 21:50