Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
[ Закрыто] Текущее время, Текущее время
 
Цитата
Z написал:
off -  http://24timezones.com/map_ru.htm  ...
не понял шутку.. и что?
Мне надо в VBA функцию, возвращающую текущее время
[ Закрыто] Текущее время, Текущее время
 
Доброго дня всем. Как получить текущее время- подскажите, кто знает..
Изменено: naz - 12.09.2016 14:45:37
Ошибка выделения рисунка
 
Так не прокатило, значение x.Placement по умолчанию уже равно 2 (а это и есть xlMove).
Сделал  x.Placement= 1 и получилось.
Спасибо за наводку на параметр!
Ошибка выделения рисунка
 
The_Prist написал:
Код
ActiveSheet.Pictures.Insert ("e:\gal91client2\kamaz.jpg")
Set x = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
Всё хорошо получилось, здесь замечательный форум.
Но один момент всплыл. Рисунок помещается в ячейку, и надо, чтобы он
остался привязанным к ней. Например, при удалении столбцов слева или при
перетаскивании ячейки надо, чтобы рисунок оставался бы в этой ячейке. А
сейчас рисунок остаётся на прежнем месте
Подскажите, пож.- какое свойство объекта х задать для этого?
Ошибка выделения рисунка
 
Благодарю всех ответивших в этой теме. Сейчас вроде всё понятно, но тему не закрываю..
Ошибка выделения рисунка
 
Я понял так, что при наличии нескольких рисунков на листе Эксель формирует массив Array("Picture 1", "Picture 2",...) c числом элементов, = числу рисунков.
Ошибка выделения рисунка
 
Так получилось:
Код
 Set x = ActiveSheet.Pictures.Insert("e:\gal91client2\kamaz.jpg")
Ошибка выделения рисунка
 
Цитата
Казанский написал:
Как должно быть связано положение картинки с ячейкой е1?
В центр поместить
Ошибка выделения рисунка
 
Вот здесь поподробней, если можно:
Почему Вы назначили имя объекта "Picture 2"? Не удаётся назначить объекту х рисунок. попробовал так:
Код
   Dim x As Object
   ActiveSheet.Pictures.Insert ("e:\gal91client2\kamaz.jpg")  Здесь вроде должен определиться "Picture 1"
   Set x = ActiveSheet.Shapes.Range(Array("Picture 1"))   'Здесь ошибка- компонент с указанным именем не найден
   MsgBox x.Name
   x.ScaleWidth 0.37375, msoFalse, msoScaleFromTopLeft 
   x.ScaleHeight 0.3737499563, msoFalse, msoScaleFromTopLeft

как, например, поместить рисунок в центр какой-либо ячейки?
Спасибо.
Ошибка выделения рисунка
 
Странно, у меня ошибка.
Как минимум, передвинуть рисунок надо, так получилось:
Код
Sub Format()
    Range("e1").Select
    With ActiveSheet.Pictures.Insert("E:\GAL91Client2\Kamaz.jpg")
        .Select
     End With
    Selection.ShapeRange.IncrementLeft 106.5
А как без выделения это сделать?
Ошибка выделения рисунка
 
Доброго дня, уважаемые.
Вопрос простой- открываю Эксель, копирую в него рисунок- это нормально.
Далее мне надо рисунок выделить и что-то с ним сделать. При попытке
выделения получаю ошибку "Компонент с указанным именем не найден".
Хотя объект Array("Picture 1")  есть:
Код
Sub Format()
    Range("e1").Select
    ActiveSheet.Pictures.Insert("E:\GAL91Client2\Kamaz.jpg").Select  'Нормально
    ActiveSheet.Shapes.Range(Array("Picture 1")).Select   'Ошибка здесь
....
End Sub
Что не так?
Изменено: naz - 23.03.2016 11:41:59 (Ошибочка..)
ADODB.Recordset- ошибка при доступе к таблице MS SQL, ошибка при длительном выполнении хранимой процедуры на MS SQL
 
Вообщем так решил проблему. Может, кому пригодится.
Поскольку хранимая процедура скоропостижно закрывалась, не успев вернуть записи, заставил её записывать результат в специально сделанную таблицу (шлюз). Это делается первым вызовом recordset. А вторым вызовом вычёрпываем записи из "шлюза" в замечательный Excel.
Код
stroka = "MyProcedure"
Cmd.CommandText = stroka
Set RecSet = Cmd.Execute()

stroka = "select * from Table order by scode;"
Cmd.CommandText = stroka
Set RecSet = Cmd.Execute()
If RecSet.State <> adStateClosed Then
    Range("A3").CopyFromRecordset RecSet
    Else: MsgBox "RecSet закрыт. Это плохо.." & vbCrLf
End If

ADODB.Recordset- ошибка при доступе к таблице MS SQL, ошибка при длительном выполнении хранимой процедуры на MS SQL
 
Цитата
Doober написал:
Список выбора для инструкции INSERT содержит меньшее число элементов,
чем список вставки. Число значений SELECT должно соответствовать числу столбцов INSERT.
Нет, такой уже нет ошибки. Пробую разные варианты, может хранимку в функцию переделаю..
ADODB.Recordset- ошибка при доступе к таблице MS SQL, ошибка при длительном выполнении хранимой процедуры на MS SQL
 
Похоже, дело не во времени выполнения процедуры, а в том, что в ней используется insert. Вот фрагмент процедуры:
Код
...
create table #StBudj
 (
     nrec  binary(8)     not null, 
     path  varchar(max)  not null, 
     name  varchar(max)  not null, 
     level int           not null, 
     scode varchar(max)  not null,
 );
insert into #StBudj(nrec, path, name, level, scode) select 0x11, 'path', 'name', 11;  -- На эту строку ошибка выдаётся
select * from #stbudj;
Если insert не использовать, ошибки нет.. Выполняется быстро.
Изменено: naz - 01.03.2016 16:23:37
ADODB.Recordset- ошибка при доступе к таблице MS SQL, ошибка при длительном выполнении хранимой процедуры на MS SQL
 
Тяжеловата процедура.. Хочется что- нить в объектах Connection,
Command и Recordset подкрутить.. Почему Recordset закрытым оказывается?
Изменено: naz - 01.03.2016 16:38:17
ADODB.Recordset- ошибка при доступе к таблице MS SQL, ошибка при длительном выполнении хранимой процедуры на MS SQL
 
Доброго первого дня  весны, уважаемые.
Прошу подсказать, как одолеть такую ошибку:
есть стандартный доступ к таблице MS SQL из Excel'я:
Код
Option Explicit
Public Conn As New ADODB.Connection
Public Cmd As ADODB.Command
Public RecSet As New ADODB.Recordset
...
Conn.ConnectionString = "PROVIDER=SQLOLEDB; SERVER=MKS; DATABASE=devel; TRUSTED_CONNECTION=NO; UID=user; PWD=password"
Conn.ConnectionTimeout = 3600
Conn.CommandTimeout = 3600
Conn.Open
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdText
Cmd.CommandTimeout = 3600
Dim stroka As String
stroka = "MyProcedure"
Cmd.CommandText = stroka
Set RecSet = Cmd.Execute()
Range("A4").CopyFromRecordset RecSet
Set RecSet = Nothing
Set Cmd = Nothing
Set Conn = Nothing
, который нормально работает, если хранимая процедура "MyProcedure" возвращает набор строк быстро.
А стоит ей задуматься, то Excel (2010) радостно сообщает:
Error
ADODB.Recordset-->Операция не   допускается, если объект закрыт.
Тайм- ауты я всякие пробовал, не помогло..
Вставить таблицу с Excle в Oracle, Ошибка Вызов SetParameterInfo не выполнен.
 
Цитата
Андрей VG написал:
SuperCat, у ТС была проблема не с этим, он использовал команду создания таблицы, как источник для ввода данных в таблицу  
Да, у "ТС" в голове была путаница с добавлением данных. Благодарю коллег за обсуждение, ясность появилась. SuperCat, Ваш способ тоже решает мою задачу.
Вставить таблицу с Excle в Oracle, Ошибка Вызов SetParameterInfo не выполнен.
 
Цитата
SuperCat написал:
Поменяйте CursorLocation на 2.
Поменял, изменений не заметил. Отработало также, как и с .CursorLocation = 3
А в чём смысл этого параметра? Нет справки под рукой по параметрам ADODB.Connection..
Изменено: naz - 15.12.2015 06:46:28
Вставить таблицу с Excle в Oracle, Ошибка Вызов SetParameterInfo не выполнен.
 
Для полноты картины приведу всю функцию, которая записывает в таблицу MS SQL tFpCo данные из колонки iKol. Может, кому сгодится..
Код
Option Explicit
Public Conn As New ADODB.Connection
Public sCmdStroka As String
Public RecSet As New ADODB.Recordset
Public iLastRow As Integer
Function iCreate_tFpCo(iKol As Integer) As Integer  'Cоздать в базе devel таблицу sTable по колонке iKol
    iLastRow = Cells(Rows.Count, iKol).End(xlUp).Row
    On Error GoTo ErrorHandler
    With Conn
    .CursorLocation = 3
    .ConnectionString = "PROVIDER=SQLOLEDB; SERVER=MKS-GALAKTIKA2; DATABASE=devel; TRUSTED_CONNECTION=NO; UID=naz; PWD=rjkyf"
    .ConnectionTimeout = 15
    .CommandTimeout = 3600
    .Mode = 3
    .Open
    End With
    sCmdStroka = "if exists (select * from dbo.sysobjects where id = object_id(N'tFpCo','U')) drop table tFpCo;" & _
                 vbCr & " create table tFpCo (sFpCo varchar(max) not null);"
    Conn.Execute sCmdStroka
    sCmdStroka = "Select * from tFpCo"
    RecSet.Open sCmdStroka, Conn, 3, 3
    Row = 2
    If iLastRow > 1 Then
        Do While Row <= iLastRow
            With RecSet
            .AddNew
            .Fields("sFpCo").Value = Cells(Row, iKol).Value
            .Update
            End With
            Row = Row + 1
        Loop
    End If
    ClouseRecSet
    ClouseConn
    Exit Function
ErrorHandler:
    ClouseRecSet
    Set Cmd = Nothing
    ClouseConn
    If Err <> 0 Then
        MsgBox Err.Source & "-->" & Err.Description, , "Error"
    End If
End Function
Public Sub ClouseRecSet()
    If Not RecSet Is Nothing Then
        If RecSet.State = adStateOpen Then RecSet.Close
    End If
    Set RecSet = Nothing
End Sub
Public Sub ClouseConn()
    If Not Conn Is Nothing Then
        If Conn.State = adStateOpen Then Conn.Close
    End If
    Set Conn = Nothing
End Sub

Вставить таблицу с Excle в Oracle, Ошибка Вызов SetParameterInfo не выполнен.
 
Отлично, получилось! Благодарю Андрея VG за точный ответ. В итоге так сработало:
Код
...   
 With Conn
    .CursorLocation = 3
    .ConnectionString = "PROVIDER=SQLOLEDB; SERVER=MKS-GALAKTIKA2; DATABASE=devel; TRUSTED_CONNECTION=NO; UID=naz; PWD=rjkyf"
    .ConnectionTimeout = 15
    .CommandTimeout = 3600
    .Mode = 3
    .Open
    End With
    sCmdStroka = "if exists (select * from dbo.sysobjects where id = object_id(N'tFpCo','U')) drop table tFpCo;" & _
                 vbCr & " create table tFpCo (sFpCo varchar(max) not null);"
    Conn.Execute sCmdStroka
    sCmdStroka = "Select * from tFpCo"
    With RecSet
    .Open sCmdStroka, Conn, 3, 3
    .AddNew
    .Fields("sFpCo").Value = "MyValue"
    .Update
    End With
...
Вставить таблицу с Excle в Oracle, Ошибка Вызов SetParameterInfo не выполнен.
 
Цитата
SuperCat написал: .Open sCmdStroka, Conn, 2, 3
Не помогло. Та же ошибка.. :(
Вставить таблицу с Excle в Oracle, Ошибка Вызов SetParameterInfo не выполнен.
 
Доброго дня коллеги!
Прошу подсказать по данной теме, как добавить из Excel'я новую запись в таблицу в MS SQL. Сделал по подсказке B.Key:
Код
Public Conn As New ADODB.Connection
Public RecSet As New ADODB.Recordset
...
    With Conn
    .CursorLocation = 3
    .ConnectionString = "PROVIDER=SQLOLEDB; SERVER=MKS-GALAKTIKA2; DATABASE=devel; TRUSTED_CONNECTION=NO; UID=naz; PWD=rjkyf"
    .ConnectionTimeout = 15
    .CommandTimeout = 3600
    .Mode = 3
    .Open
    End With
    sCmdStroka = "if exists (select * from dbo.sysobjects where id = object_id(N'tFpCo','U')) drop table tFpCo;" & _
                 vbCr & " create table tFpCo (sFpCo varchar(max) not null);"
    With RecSet
    .Open sCmdStroka, Conn, 3, 3
    .AddNew                       '--> Здесь ошибка!
    .Fields("sFpCo").Value = "MyValue"
    .Update
    End With
... 
Получаю на строке ".AddNew" ошибку ADODB.Recordset-->Операция не допускается, если объект закрыт.
Что не так?
Таблица tFpCo создаётся нормально. А вот запись не добавляется.
 
Изменено: naz - 14.12.2015 10:46:30 (Уточнение)
"Ошибка мультипликации диапазонов"
 
Ну что ж, это тоже ответ, благодарю. Буду знать, что Эксель не виноват.
"Ошибка мультипликации диапазонов"
 
К сожалению, официальная техподдержка разработчиков КИС сейчас нам недоступна.
Попробую так спросить: какие ситуации приводят к такому сообщению? Может, кто-нить сталкивался..
"Ошибка мультипликации диапазонов"
 
Доброго дня всем.
Прошу помочь, печаль такая: при выгрузке данных из КИС "Галактика" с использованием шаблона получаю сообщение: "Ошибка мультипликации диапазонов". С чем связано, где искать? В шаблоне есть встроенный макрос- он идёт вместе с КИС и работоспособен. Может, проблема в данных?
Где хранятся ссылки на библиотеки?
 
Цитата
Юрий М написал: А удаление с диска не приведёт к удалению из ЛистБокса?
Пытался так делать для эксперимента, но файл не удаляется/ не переименовывается. Можно, конечно, применить программу для удаления "захваченных" файлов, но не стал этого делать, т.к. смысла нет. Это же делается на другом компьютере, у клиента.
В моём случае был конфликт версий- я сделал скрипт на Эксель 2010, а у клиента был 2007. Решение- простое- применил более старую библиотеку, которая есть у обеих версий.
Где хранятся ссылки на библиотеки?
 
The_Prist, полезная статья. Excel - море..:)
Изменено: naz - 25.02.2015 13:32:33
Где хранятся ссылки на библиотеки?
 
Юрий М, да, найти путь к файлу не проблема, проблема из ЛистБокса удалить.

Благодарю, Фёдор, статья полезна. Помогло, даже без перевода.
Здесь замечательный форум, уже не один вопрос с его помощью решаю!
Где хранятся ссылки на библиотеки?
 
Не всё так просто. Надо именно из списка удалить ссылку. Дело в том, что Эксель открывается из системы "Галактика", и в шаблоне "Галактики" указаны другие пути, отличающиеся от локальных.
Где хранятся ссылки на библиотеки?
 
Добрый день, уважаемые. Подскажите решение такой проблемы, Excel 2007:
Открываю файл, в VBA в библиотеке: Tools -> References вижу ссылки на файлы с "библиотеками". Где хранится список этих ссылок? Чтобы удалить ненужные?
Страницы: 1 2 След.
Наверх