|
|
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
При указании в форме на файл с фото в таблицу пишеться весь путь к файлу и имя файла , а хотелось бы только имя файла Option Compare Database Option Explicit Dim path As String Private Sub AddPicture_Click() ' Для выбора файла с фотографией сотрудника используется ' стандартное окно открытия файла Office. getFileName End Sub Private Sub Form_RecordExit(Cancel As Integer) ' При переходе между записями надпись errormsg скрывается, ' чтобы ненужного избежать мелькания. ErrorMsg.Visible = False End Sub Private Sub RemovePicture_Click() ' Очищает строку имени файла для записи сотрудника ' и выводит надпись errormsg. Me![ImagePath] = "" hideImageFrame ErrorMsg.Visible = True End Sub Private Sub ImagePath_AfterUpdate() ' Отображает выбранную фотографию сотрудника. On Error Resume Next showErrorMessage showImageFrame If (IsRelative(Me!ImagePath) = True) Then Me![ImageFrame].Picture = path & Me![ImagePath] Else Me![ImageFrame].Picture = Me![ImagePath] End If End Sub Private Sub Form_Current() ' Если для записи текущего сотрудника имеется фотография, ' она отображается в форме. Если указанный файл не существует, ' либо если для текущего сотрудника поле имени файла пусто, ' надпись errormsg выводит соответствующее сообщение. Dim res As Boolean Dim fName As String path = CurrentProject.path On Error Resume Next ErrorMsg.Visible = False If Not IsNull(Me![Фотография]) Then res = IsRelative(Me![Фотография]) fName = Me![ImagePath] If (res = True) Then fName = path & "\" & fName End If Me![ImageFrame].Picture = fName showImageFrame Me.PaintPalette = Me![ImageFrame].ObjectPalette If (Me![ImageFrame].Picture <> fName) Then hideImageFrame ErrorMsg.Caption = "Фотография не найдена" ErrorMsg.Visible = True End If Else hideImageFrame ErrorMsg.Caption = "Для добавления фотографии нажмите кнопку ""Добавить/изменить""" ErrorMsg.Visible = True End If End Sub Sub getFileName() ' Для выбора имени файла с фотографией текущего сотрудника ' используется стандартное окно открытия файла Office. ' Если пользователь указывает файл, его содержимое ' отображается в элементе управления ImageFrame. Dim fileName As String Dim result As Integer With Application.FileDialog(msoFileDialogFilePicker) .Title = "Выбор фотографии сотрудника" .Filters.Add "Все файлы", "*.*" .Filters.Add "JPEG", "*.jpg" .Filters.Add "Рисунки", "*.bmp" .FilterIndex = 3 .AllowMultiSelect = False .InitialFileName = CurrentProject.path result = .Show If (result <> 0) Then fileName = Trim(.SelectedItems.Item(1)) Me![ImagePath].Visible = True Me![ImagePath].SetFocus Me![ImagePath].Text = fileName Me![Имя].SetFocus Me![ImagePath].Visible = False End If End With End Sub Sub showErrorMessage() ' Выводит сообщение errormsg, если файл фотографии недоступен. If Not IsNull(Me![Фотография]) Then ErrorMsg.Visible = False Else ErrorMsg.Visible = True End If End Sub Function IsRelative(fName As String) As Boolean ' Возвращает значение false, если имя файла включает ' имя диска или путь UNC. IsRelative = (InStr(1, fName, ":") = 0) And (InStr(1, fName, "\\") = 0) End Function Sub hideImageFrame() ' Скрывает элемент управления с фотографией. Me![ImageFrame].Visible = False End Sub Sub showImageFrame() ' Выводит элемент управления с фотографией. Me![ImageFrame].Visible = True End Sub Private Sub Имя_BeforeUpdate(Cancel As Integer) End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:25:25 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
отрежь все лишнее. см. функции mid, left, right, len ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:37:17 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Можно пример !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:42:21 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Примерно так Right$(ПолныйПуть, Len(ПолныйПуть) - instrrev(ПолныйПуть, "\")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:45:28 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
на пальцах: 1. есть строка str - имя файла с путем 2. делаем цикл от len(str) до 1 с шагом -1 3. в цикле смотрим если mid(str, 1, i) = "\" то значит слева осталось искомое имя файла 4. вырезаем его при помощи той же mid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:47:08 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Serge GavrilovПримерно так Right$(ПолныйПуть, Len(ПолныйПуть) - instrrev(ПолныйПуть, "\")) так гораздо лучше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 12:49:31 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Извините за тупость я в VBA не очень разбираюсь можно показать на примере мной выложенных данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 13:03:33 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Что то не получаеться у меня ваши предложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 15:18:01 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
function GetFileName(aName as string) as string Dim s as long, ss as long s=1 ss=InStr(aName, "\") while ss<>0 s=ss+1 ss=InStr(s, aName, "\") wend GetFileName=Mid(aName,s) end function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 15:38:06 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Что то не срабатывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:08:25 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
softmasterЧто то не срабатывает что не срабатывает? хорош уже прикалваться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:24:48 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
aleks2function GetFileName(aName as string) as string Dim s as long, ss as long s=1 ss=InStr(aName, "\") while ss<>0 s=ss+1 ss=InStr(s, aName, "\") wend GetFileName=Mid(aName,s) end function Эта фунция у меня не работает выдает что она вызавает ошибку Уважаемые спецы огромная просьба отнестись терпимее Я же приложил свой код VBA Что нужно в нем подправить Простите за незнание языка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:34:23 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Эта фунция у меня не работает выдает что она вызавает ошибку Там на неведомой дорожке Следы невиданных зверей Где не работает, зачем не работает, где ошибка, какая ошибка - придет дядя Вася и раскажет. Тогда-то многоуважаемый форум и сумеет рассказать многоуважаемому софтмастеру - как же эту неведомую ошибку побороть. Так что, товарисч софтмастер, придется вам сидеть и ждать дядю Васю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:38:43 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
kedzo softmasterЧто то не срабатывает что не срабатывает? хорош уже прикалваться... Мне будет наверное прислать вам файл базы он не большой 124 kb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 16:40:23 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Лох Позорный Эта фунция у меня не работает выдает что она вызавает ошибку Там на неведомой дорожке Следы невиданных зверей Где не работает, зачем не работает, где ошибка, какая ошибка - придет дядя Вася и раскажет. Тогда-то многоуважаемый форум и сумеет рассказать многоуважаемому софтмастеру - как же эту неведомую ошибку побороть. Так что, товарисч софтмастер, придется вам сидеть и ждать дядю Васю. Яже специально выложил свой код т.к не очень разбираюсь в VB и помоему попросил помочь разобраться а не соревноваться в краснословии!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 17:49:19 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Для мастеров - повторяю: Где не работает, зачем не работает, где ошибка, какая ошибка - придет дядя Вася и раскажет. Для тупых - объясняю. Угадать на какой строчке возникает ошибка и какая именно ошибка - могут только телепяты. А телепяты - в отпуске. На вопрос: Эта фунция у меня не работает выдает что она вызавает ошибку можно дать разве что такой ответ Поправь ошибку и у тебя все заработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 17:53:24 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Лох ПозорныйДля мастеров - повторяю: Где не работает, зачем не работает, где ошибка, какая ошибка - придет дядя Вася и раскажет. Для тупых - объясняю. Угадать на какой строчке возникает ошибка и какая именно ошибка - могут только телепяты. А телепяты - в отпуске. На вопрос: Эта фунция у меня не работает выдает что она вызавает ошибку можно дать разве что такой ответ Поправь ошибку и у тебя все заработает. При открытии формы для ввода пути к файлу выдает Bыpaжeниe Teкyщaя зaпиcь, ввeдeннoe в пoлe cвoйcтвa coбытия, вызывaeт oшибкy: Ambiguous name detected: GetFileName. * Peзyльтaтoм выpaжeния нe являeтcя имя мaкpoca, имя фyнкции пoльзoвaтeля или cтpoкa [Пpoцeдypa oбpaбoтки coбытий]. * Oшибкa пpи вычиcлeнии фyнкции, coбытия или мaкpoca. после вставки : function GetFileName(aName as string) as string Dim s as long, ss as long s=1 ss=InStr(aName, "\") while ss<>0 s=ss+1 ss=InStr(s, aName, "\") wend GetFileName=Mid(aName,s) end function ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 18:03:23 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Лох ПозорныйДля мастеров - повторяю: Где не работает, зачем не работает, где ошибка, какая ошибка - придет дядя Вася и раскажет. Для тупых - объясняю. Угадать на какой строчке возникает ошибка и какая именно ошибка - могут только телепяты. А телепяты - в отпуске. На вопрос: Эта фунция у меня не работает выдает что она вызавает ошибку можно дать разве что такой ответ Поправь ошибку и у тебя все заработает. Разреши тебе куда нибудь скинуть базу она 124 kb ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 18:08:43 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
softmasterSub getFileName() ' Для выбора имени файла с фотографией текущего сотрудника ' используется стандартное окно открытия файла Office. ' Если пользователь указывает файл, его содержимое ' отображается в элементе управления ImageFrame. Dim fileName As String Dim result As Integer With Application.FileDialog(msoFileDialogFilePicker) .Title = "Выбор фотографии сотрудника" .Filters.Add "Все файлы", "*.*" .Filters.Add "JPEG", "*.jpg" .Filters.Add "Рисунки", "*.bmp" .FilterIndex = 3 .AllowMultiSelect = False .InitialFileName = CurrentProject.path result = .Show If (result <> 0) Then fileName = Trim(.SelectedItems.Item(1)) Me![ImagePath].Visible = True Me![ImagePath].SetFocus Me![ImagePath].Text = fileName Me![Имя].SetFocus Me![ImagePath].Visible = False End If End With End Sub aleks2function GetFileName(aName as string) as string Dim s as long, ss as long s=1 ss=InStr(aName, "\") while ss<>0 s=ss+1 ss=InStr(s, aName, "\") wend GetFileName=Mid(aName,s) end function Сравни. Найди десять отличий в имени функций. Если не найдешь - задумайся, не зря ведь аксес кричит во все горло "Ambiguous name detected: GetFileName ". Подумай, что хорошего (или плохого) произойдет, если одну из функций как-нить переименовать. Разреши тебе куда нибудь скинуть базу она 124 kb Не разрешу. Это противоречит моим моральным принципам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 18:50:53 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 19:07:27 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
To Proga Вы проверили свое предложение? Сравните с Right$(ПолныйПуть, Len(ПолныйПуть) - instrrev(ПолныйПуть, "\")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 19:29:59 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
один шарик потерял - "\" другой разбил - +1 Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 20:03:06 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Прикольнее всего то, что никто даже не думает страховаться я от того, что в строке (по каким-либо причинам) может совсем не оказаться обратного слеша Ну я понимаю если человек стоит больше 1500уе... если человек стоит больше 1500, то у него в каждой строке слеши... но Serge Gavrilov то чему людей учит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 20:26:03 |
|
||
|
Путь к файлу в таблице Access
|
|||
|---|---|---|---|
|
#18+
Вах!!! Прошу прощения. У Сержа все ок. И у Шухарда тож. Был пьян. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 20:33:14 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32656470&tid=1672307]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 404ms |

| 0 / 0 |
