Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поиск файлов / 16 сообщений из 16, страница 1 из 1
02.12.2004, 17:28:07
    #32810301
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
У меня есть такая проблема-при поиске файлов использую два filesystemobject и в момент использования второго первый почему-то присваивает все значения второго.



....Или помогите решить следующую задачу- ведём поиск в подкаталогах по файлам test_(short_date).mdb и бёрём только тот,в котором short_date наибольший.

Заранее спасибо
...
Рейтинг: 0 / 0
02.12.2004, 17:39:40
    #32810333
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
MPoilв момент использования второго первый почему-то присваивает все значения второго.


Попробуй объявлять переменные как Private либо с разными именами.
...
Рейтинг: 0 / 0
02.12.2004, 17:44:20
    #32810351
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
RFT MPoilв момент использования второго первый почему-то присваивает все значения второго.


Попробуй объявлять переменные как Private либо с разными именами.
dim fs
dim fs2
set fs=application.filesearch
set fs2=application.filesearch

Первый сразу начинает присваивать после fs2.execute()
...
Рейтинг: 0 / 0
02.12.2004, 17:46:26
    #32810357
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
private Не помогло
...
Рейтинг: 0 / 0
02.12.2004, 17:53:34
    #32810385
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
А тебя не смущает одинаковое application.filesearch?
...
Рейтинг: 0 / 0
02.12.2004, 17:57:32
    #32810409
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
RFTА тебя не смущает одинаковое application.filesearch?
а как надо-просвяти
...
Рейтинг: 0 / 0
02.12.2004, 18:00:40
    #32810427
святитель
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
MPoilа как надо-просвяти
свят-свят-свят...
...
Рейтинг: 0 / 0
02.12.2004, 18:02:34
    #32810434
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
Ну самое простое - запускать их отдельно чтоли... И вообще, зачем тебе два FSO? Может побольше кода дашь посмотреть?
...
Рейтинг: 0 / 0
02.12.2004, 18:13:46
    #32810473
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
интересно, а где здесь обещанный FileSystemObject?
...
Рейтинг: 0 / 0
02.12.2004, 18:32:21
    #32810529
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
Простите чайника, а если написать
= New
?
...
Рейтинг: 0 / 0
02.12.2004, 20:22:35
    #32810630
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
2Саныч

на 15 тысяче стал чайником?
...
Рейтинг: 0 / 0
02.12.2004, 20:45:31
    #32810651
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
вадя2Саныч

на 15 тысяче стал чайником?
Болтливость - это еще не признак высокого профессионализма. Даже скорее наоборот.
...
Рейтинг: 0 / 0
03.12.2004, 09:37:23
    #32810971
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
?Set fs2 = New Application.FileSearch -ошибка при компиляции.
Как привильно dim fs2? private fs2? какой тип у fs2?


2.Может просто кто-то знает как ещё можно решить мою задачу: Допустим есть два каталога:
dir1 и dir2 с файлами :
dir1\temp_01.01.00.mdb
dir1\temp_01.12.04.mdb
dir1\temp_02.12.04.mdb
dir2\temp_01.01.02.mdb
dir2\temp_01.12.04.mdb
dir2\temp_02.12.05.mdb/
Вообщем надо выбрать только файлы :
1.dir2\temp_02.12.05.mdb
2.dir1\temp_02.12.04.mdb
...
Рейтинг: 0 / 0
03.12.2004, 09:42:09
    #32810985
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
    On Error GoTo Label
    
    Dim i As Integer, J As Integer
    Dim Name As String, Name_W As String, temp As String
    Dim Firma As String
    Dim rs As DAO.Recordset
    Dim fso As New FileSystemObject
    
    temp = "Temp"
    If IsNull(Me.BDNameU) Then
        MsgBox "Óêàæèòå ïóòü ê äèðåêòîðèè"
        Exit Sub
    End If
'    If IsNull(Me.BDNameFile) Then
'        MsgBox "Óêàæèòå ïóòü ê îáúåäèíåííîé ÁÄ"
'        Exit Sub
'    End If
'    RefreshLinks (BDNameFile)
    Set fs = Application.FileSearch
    With fs
        .NewSearch
        .LookIn = Me.BDNameU
        .SearchSubFolders = True
        .MatchAllWordForms = True
        .MatchTextExactly = False
        Select Case Priznak
            Case 0
                .FileName = "IT_Budget_dat.mdb"
            Case 1
                .FileName = "IT_Budget_dat-"
            Case 2
                .FileName = "IT_Budget_dat_final"
        End Select
        
        If .Execute(SortBy:=msoSortByFileName, _
    SortOrder:=msoSortOrderAscending) > 0 Then
            For i = 1 To .foundfiles.Count
            Debug.Print fs.foundfiles(i)
            If Priznak = 1 Then
                
                Set fs2 = Application.FileSearch
                    fs2.LookIn = Left(fs.foundfiles(i), InStrRev(fs.foundfiles(i), "\"))
                    fs2.SearchSubFolders = False
                    fs2.FileName = "IT_Budget_dat-"
                    Dim cnt As Integer
                    
                    If 
Код: plaintext
fs2.Execute() 
> 0 Then
Dim str_date As Date
For cnt = 1 To fs2.foundfiles.Count
Dim str_date2 As Date
str_date2 = str_date
str_date = Format(Mid(fs2.foundfiles(cnt), 48, InStrRev(fs2.foundfiles(cnt), ".") - InStrRev(fs2.foundfiles(cnt), "-") - 1), "dd.mm.yy")
' datediff(m,format(str_date,"dd.mm.yy"),format(str_date,"dd.mm.yy"))

If str_date2 > 0 Then
If DateDiff("d", str_date, str_date2) > 0 Then
str_date = str_date2
End If
End If
Next cnt
End If

fs2.FileName = Format(str_date, "dd.mm.yy") & ".mdb"
If Left(fs2.FileName, 1) = "0" Then
fs2.FileName = "*" & Right(fs2.FileName, Len(fs2.FileName) - 1)
End If
If fs2.Execute() > 0 Then
If fs.foundfiles(i) <> fs2.foundfiles(1) Then
Exit For
End If
End If
End If
' Me.NameBD.Caption = "(" & fs.foundfiles(i) & ")"
For J = 1 To 1
Select Case J
Case 1
Name = "Budget"
End Select
Select Case Priznak
Case 0
Name_W = Name & "_U"
Case 1
Name_W = Name & "_Z"
Case 2
Name_W = Name & "_F"
End Select
If (Priznak = 1 Or Priznak = 2) Or ((Priznak = 0) And (UCase(Right(fs.foundfiles(i), Len(fs.FileName))) = UCase(fs.FileName))) Then
Debug.Print fs.foundfiles(i)
DoCmd.TransferDatabase acImport, "Microsoft Access", fs.foundfiles(i), acTable, Name, temp
Set rs = CurrentDb.OpenRecordset(temp)
If Not rs.EOF Then
Firma = rs!Region_ID
rs.Close
Dim rs2 As DAO.Recordset
Set rs2 = CurrentDb.OpenRecordset("select distinct region_id from temp")

Set rs2 = Nothing
DoEvents
' If Firma = 725 Then
' CurrentDb.Execute ("Update Temp set region_id=725")
' End If

CurrentDb.Execute "Delete * from " & Name_W & " where region_id=" & Firma

CurrentDb.Execute ("insert into " & Name_W & " select * from " & temp)
CurrentDb.Execute ("insert into Protokol (BD_id,Name_BD,Date_time,Type_BD) values(" & Firma & ",""" & fs.foundfiles(i) & """,""" & Day(Date) & "/" & Month(Date) & "/" & Year(Date) & """," & Priznak + 1 & ")")
If Priznak = 2 Then
CurrentDb.Execute "Delete * from Budget_F_copy where region_id=" & Firma
CurrentDb.Execute ("insert into Budget_F_copy select * from " & temp)
' CurrentDb.Execute ("insert into Protokol (BD_id,Name_BD,Date_time,Type_BD) values(" & Firma & ",""" & fs.foundfiles(i) & """,""" & Day(Date) & "/" & Month(Date) & "/" & Year(Date) & """," & Priznak + 1 & ")")
End If
Else
rs.Close
' MsgBox "îòñóòñòâóþò äàííûå ïî " & Name
End If
DoCmd.DeleteObject acTable, temp
End If
Next J
Next i
If Priznak = 2 Then
' 'Çàìåíà ïóñòûõ ïåðèîäîâ íà 2êâ2005
' strsql = "UPDATE Budget_F SET Budget_F.Period_ID = ""2êâ2005"" WHERE (Budget_F.Period_ID Is Null)"
' CurrentDb.Execute strsql
' 'Çàìåíà ïóñòûõ ïåðèîäîâ íà 2êâ2005
' '?????
' 'Óäàëèòü 283 - Íåíåöêèé îêðóã
' strsql = "Delete * from Budget_F WHERE Budget_F.Region_id=283"
' CurrentDb.Execute strsql
' 'Óäàëèòü 283 - Íåíåöêèé îêðóã
' 'Çàìåíèòü NULL Branch_id íà ñòîëè÷íûé
'' strsql = "UPDATE Branch_Dict_New BDN INNER JOIN Budget_F BF ON BDN.Region_ID = BF.Region_ID SET BF.Branch_ID = BDN.SKK_Branch_ID " & _
'' "WHERE (BF.Branch_ID Is Null) And BDN.Direction "
'' CurrentDb.Execute strsql
' 'Çàìåíèòü NULL Branch_id íà ñòîëè÷íûé
' 'Óäàëèòü âñå çàïèñè, ãäå Total=Null
' strsql = "Delete * from Budget_F where Total is Null"
' CurrentDb.Execute strsql
' 'Óäàëèòü âñå çàïèñè, ãäå Total=Null
End If
MsgBox "закончено объединение"
Else
MsgBox "нет данных"
End If
End With

Exit Sub
Label:
MsgBox err.Description
[SRC vba][/src]На том месте fs2.execute() перехватывает fs1
...
Рейтинг: 0 / 0
03.12.2004, 09:46:53
    #32811000
Birjan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
Можно использовать функцию Dir() и в цикле искать нужный файл.
...
Рейтинг: 0 / 0
03.12.2004, 10:03:42
    #32811047
MPoil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск файлов
как получиь список подкаталогов в данном каталоге ввиде массива?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поиск файлов / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]