Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать экспорт в EXCEL 2007 / 8 сообщений из 8, страница 1 из 1
08.11.2007, 12:16
    #34924556
Как сделать экспорт в EXCEL 2007
Собственно, САБЖ. Есть рекордсет (VB6). Нужно сделать его экспорт в Эксель 2007. Для 97/2003 никаких проблем. А при попытке запустить процедуру на машине, где установлен 2007 - вылетает ошибка. Кто сталкивался с такой проблемой и как ее решить? Вот код процедуры для 97/2003
Код: 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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
Private Sub InExcel97_2003_Click(Index As Integer)
AttentionForm.Visible = True
  
  Dim rs As Recordset
  Set rs = ResultForm.DataMain.Recordset.Clone
  
  rs.MoveFirst
  
  Dim MyDate As String
  MyDate = str(Format$(Now(), "ddmmyyyyhhmm"))
    
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Set oExcel = CreateObject("Excel.Application.11")
   Set oBook = oExcel.Workbooks.Open("c:\Arka\main.xls")
   Set oSheet = oBook.Worksheets("Результат")
   Dim iCols As Integer
   
   'Очистка таблицы Экселя
    oSheet.Cells.Select
    oExcel.Selection.ClearContents
    oSheet.Range("A1").Select
   
'Передаем названия столбцов

    For iCols =  0  To rs.Fields.Count -  1 
    oExcel.Cells( 1 , iCols +  1 ).Value = rs.Fields(iCols).Name
    Next
    oExcel.Range(oSheet.Cells( 1 ,  1 ), oSheet.Cells( 1 , rs.Fields.Count)).Font.Bold = True

'Передаем данные
    oExcel.Range("A2").CopyFromRecordset rs

'Форматируем столбцы
    oExcel.Cells.Select
    oExcel.Selection.Columns.AutoFit
    oExcel.Range("A1").Select
   
'Сохранить книгу и закрыть Excel
'Проверка существования исходящей директории
    If nasDirExists("c:\Reports\") Then
        oBook.SaveAs FileName:="c:\Reports\" & MyDate & ".xls"
         AttentionForm.Hide
        MsgBox "Экспорт в папку C:\Reports\ успешно завершен",  64 , "Операция завершена"
    Else
    
    Select Case MsgBox("Целевая папка c:\Reports\ не найдена. Создать?",  52 , "Внимание!!!")
        Case  6  ' Да
            MkDir ("c:\Reports")
            oBook.SaveAs FileName:="c:\Reports\" & MyDate & ".xls"
            AttentionForm.Hide
            MsgBox "Целевая папка C:\Reports\ успешно создана." & vbCrLf & "Экспорт завершен",  64 , "Экспорт"
        Case  7  ' Нет
            oExcel.Cells.Select
            oExcel.Selection.ClearContents
            oExcel.Range("A1").Select
            oBook.Save
            AttentionForm.Hide
            MsgBox "Вы отказались от экспорта",  64 , "Операция не завершена"
End Select
    
    End If
 ' Разорвать соединение
    oBook.Save
    oExcel.Quit
    Set oExcel = Nothing
    rs.Close
    Set rs = Nothing
 End Sub

...
Рейтинг: 0 / 0
08.11.2007, 23:32
    #34926606
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать экспорт в EXCEL 2007
в каком месте кода "вылетает ошибка"? текст ошибки?
...
Рейтинг: 0 / 0
08.11.2007, 23:42
    #34926616
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать экспорт в EXCEL 2007
nibblesв каком месте кода "вылетает ошибка"? текст ошибки?А я телепатическим методом читаю память Романа Шевченко.... У него ошибка в пятнадцатой строке. Он открывает не простой Эксель, а одиннадцатый. И если злодей юзер вместо одиннадцатого поставил себе двенадцатый, то естественно у него все взрывается.
... А еще Роман по утрам не умывается.
...
Рейтинг: 0 / 0
09.11.2007, 10:37
    #34927183
Как сделать экспорт в EXCEL 2007
Ну в принципе я не такой идиот каким кажусь. И поставить "12" вместо "11" при вызове Экселя я догадался. А ошибка вылетает сразу же при попытке выполнения данной процедуры с надисью "Application Error. Application not found" Поэтому и спрашиваю, нет ли каких либо хитростей для экспорта именно в 2007 Эксель.
...
Рейтинг: 0 / 0
09.11.2007, 10:47
    #34927226
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать экспорт в EXCEL 2007
А если:
Код: plaintext
CreateObject("Excel.Application")
?
...
Рейтинг: 0 / 0
09.11.2007, 10:57
    #34927273
Как сделать экспорт в EXCEL 2007
То есть не указывать вообще номер? Мол, пусть сам догадается... Гм. Попробую
...
Рейтинг: 0 / 0
09.11.2007, 15:36
    #34928678
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать экспорт в EXCEL 2007
Роман Шевченко... А ошибка вылетает сразу же при попытке выполнения данной процедуры с надисью "Application Error. Application not found" ...

С чего вдруг она будет вылетать на линии Private Sub InExcel97_2003_Click(Index As Integer)
?

On Error Goto ....
...
Рейтинг: 0 / 0
09.11.2007, 17:53
    #34929209
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать экспорт в EXCEL 2007
nibblesА если:
Код: plaintext
CreateObject("Excel.Application")
?
+1
Позднее связывание, и не ломайте себе голову над тем, какая версия Excel стоит у клиента.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать экспорт в EXCEL 2007 / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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