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

Страницы: 1
Округление значений при экстракте чисел из БД
 
Решение:Лист4.Range("b" + CStr(I)).Value = WorksheetFunction.Round(rs1.Fields("Value").Value, 3)

Решение выглядит как применение функции "=округл" из Excel. Функция ВБА Формат не подходит, поскольку выдаёт число отформатированное как текст. Функция ВБА Round уступает такому решению потомучто округляет не по математическому закону, а, как встрете на каком-то форуме, "банкирское/ финансовое" округление.
Это решение, в действительности, костыль, поскольку не отвечает на вопрос темы, в который я хотел узнать разницу округления значений при извлечение из БД.
Округление значений при экстракте чисел из БД
 
К сожалению нет. Эта строка в Моём коде - попытка добиться округления, об этом я хотел сказать позже, в отдельной теме. Результата эта попытка не принесла.
Округление значений при экстракте чисел из БД
 
Тема особо не пошла, но отвечу Андрею. Обработка процедуры это, конечно, хорошо, но вопрос всё же откуда берётся такая разница, это му же должно быть объяснение.
Округление значений при экстракте чисел из БД
 
Цитата
А почему Вы это не делаете в ХП?
Я на столько дилетант, что "ХП" у меня ассоциируется толко с Windows XP. Не могу ответить на ваш вопрос.
Свой код я лепил переделывая имеющийся код написанный другим автором.
Округление значений при экстракте чисел из БД
 
Нужно уточнить, коды в разнх документах работают.
Округление значений при экстракте чисел из БД
 
Есть два, условно одинаковых, кода. Первый возвращает числа в формате 0,00 (Общий), а второй (Мой) – 0,0000000000000 (13 нолей после ","). Эти числа именно в значение в ячейки, не формат отображения. Формат отображения настраивается без проблем в «Формате ячейки».  Различные значения «com1.Parameters.Item("@id").Value» не причина. Они есть в обоих кодах (в полных версиях) в разных местах, результат один. Если их поменять местами – результат не меняется. Друзья, научите где искать причину такого разного результата в значение чисел?
Общий:
Код
Private Sub CommandButton1_Click()
 
Dim n As Double
Dim i As Double
n = 2   '2
While Лист4.Range("a" + CStr(n)).Value <> ""
    n = n + 1
Wend
Dim dt As Date
dt = Лист4.Range("a" + CStr(n - 1)).Value
 
Лист4.Range("a" + CStr(n)).Select
 
Dim con1 As New ADODB.Connection
Dim com1 As New ADODB.Command
Dim rs1 As New ADODB.Recordset
con1.ConnectionString = "Provider=sqloledb;Data Source=web-nnv;Initial Catalog=www-fs;Integrated Security=SSPI;"
'Range("n74326") = con1 'Лощилов
con1.Open
'Range("n74326") = con1 'Лощилов
com1.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
com1.ActiveConnection = con1
com1.CommandText = "pProc2"
 
com1.Parameters.Refresh
com1.Parameters.Item("@ct").Value = "H"
com1.Parameters.Item("@id").Value = 3217
com1.Parameters.Item("@stt").Value = dt
com1.Parameters.Item("@stp").Value = Now
com1.Parameters.Item("@st").Value = 1800
com1.Parameters.Item("@rfr").Value = 1
com1.Prepared = True
 
i = n
rs1.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
rs1.LockType = ADODB.LockTypeEnum.adLockOptimistic
 
Set rs1 = com1.Execute
    rs1.MoveFirst
    rs1.MoveNext
    While Not rs1.EOF
        Лист4.Range("a" + CStr(i)).Value = rs1.Fields("Time").Value + 3 / 24
        Лист4.Range("b" + CStr(i)).Value = rs1.Fields("Value").Value
        i = i + 1
        rs1.MoveNext
    Wend
rs1.Close
con1.Close
Set rs1 = Nothing
Set con1 = Nothing
Set com1 = Nothing
 
Лист4.Range("a" + CStr(i - 1)).Select
End Sub

Мой:
Код
Sub Факт()  'Выгрузка факта.
Dim n As Double
Dim I As Double
n = 57139
While Лист4.Range("a" + CStr(n)).Value <> ""
    n = n + 1
Wend
 
n = n - 1   'Обновление последней строки
 
Dim dt As Date
dt = Лист4.Range("a" + CStr(n - 1)).Value
Лист4.Range("a" + CStr(n)).Select
 
Dim con1 As New ADODB.Connection
Dim com1 As New ADODB.Command
Dim rs1 As New ADODB.Recordset
 
con1.ConnectionString = "Provider=sqloledb;Data Source=web-nnv;Initial Catalog=www-fs;Integrated Security=SSPI;"
con1.Open
com1.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
com1.ActiveConnection = con1
 
com1.CommandText = "pProc2"
com1.Parameters.Refresh
com1.Parameters.Item("@ct").Value = "H"     'ТИ, ПВ - H
com1.Parameters.Item("@id").Value = 3434   'ЧЭС/ МРЭС; ПВ/ТИ - 3434/24597
com1.Parameters.Item("@stt").Value = dt
com1.Parameters.Item("@stp").Value = Now
com1.Parameters.Item("@st").Value = 1800
com1.Parameters.Item("@rfr").Value = 1
com1.Prepared = True
 
I = n
rs1.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
rs1.LockType = ADODB.LockTypeEnum.adLockOptimistic
 
Set rs1 = com1.Execute
    rs1.MoveFirst
    rs1.MoveNext
    While Not rs1.EOF
        Лист4.Range("a" + CStr(I)).Value = rs1.Fields("Time").Value + 3 / 24
        Лист4.Range("b" + CStr(I)).Value = rs1.Fields("Value").Value
'        Лист4.Range("b" + CStr(I)).Value = Format(rs1.Fields("Value").Value, "#0.00")
 
        I = I + 1
        rs1.MoveNext
    Wend
rs1.Close
con1.Close
Set rs1 = Nothing
Set con1 = Nothing
Set com1 = Nothing
 
Лист4.Range("a" + CStr(I - 1)).Select
End Sub
vba. Имя пользователя (логин) другого компьютера в одной сети.
 
Jungl, Сижу за компьютером ComputerName = My_Comp в домене UserDomain = Domen. За компьютером ComputerName = Drugoy_Comp в домене UserDomain = Domen (тот же домен) сегодня сидит один из трёх пользователей. Первый пользователь под профилем UserName = UserName_1, второй пользователь под профилем UserName = UserName_2, третий - UserName = UserName_3.
Внимание вопрос: как мне с компьюьтера ComputerName = My_Comp узнать кто сегодня работает за компьютером ComputerName = Drugoy_Comp?
Спасибо за внимание всем принимающим участие.
vba. Имя пользователя (логин) другого компьютера в одной сети.
 
"environ("username")" это я встречал, это примерно что и network.userName. А как при этом сослаться на другой компьютерв сети? Домен = Moy_Domain, компьютер для определения пользователя Компьютер = Drugoy_ComputerName.
vba. Имя пользователя (логин) другого компьютера в одной сети.
 
Пытался быть максимально лаконичным. Сам справиться, думаю, не смогу. Гугл не помог. Дополнить могу только вымышленными изменёнными именами домена и компьютеров.
vba. Имя пользователя (логин) другого компьютера в одной сети.
 
Задача определить пользователя (активного), на компьтере в одном домене, в одной сети. Имя пользователя, полное или логин.
Страницы: 1
Наверх