|
50 Кб. |
|
| Написал функцию которая сама по себе работает хорошо (функция TurnCr которая сумирует кредитовый оборот соответствуюшего счета по определенномы промежутку, можете смотреть в модуле)
Вопрос вот в чем.
Я хочю чтобы пользователь сам определил параметры функции которая должен вывести в excel оборот любого счета.
Когда я в VB прямо пишу функцию, то она работает нормально. Мне нужно чтобы функция была в ТАБЛИЦЕ чтобы пользователь смог сам корректировать параметры, но никак не могу решить эту проблему. Функция возврапшяет саму себя а не итог ??????????
Буду блогадарен за помощь. | |
|
| |
|
|
|
| Извеняюсь за тему, написал 'проблема с использованием функции.' не знаю почему получились эти символы | |
|
| |
|
|
|
| а не могли бы вы здесь привести текст функции. ИЛи приложить ее так текст. | |
|
| |
|
|
|
| Функция в прикрепленном файле. | |
|
| |
|
|
|
| это я понял. но посмотреть ее я не могу. нет у меня access | |
|
| |
|
|
|
| функция
Public Function TurnCr(ACC As String, STDATE, ENDDATE) As Double
Dim ACC1 As String, DDTE As String, DDTE2 As String, KUT As String, TURN As Double
DDTE = Format$(STDATE, "DD/MM/YYYY")
DDTE2 = Format$(ENDDATE, "DD/MM/YYYY")
If DLookup("ACCKUT", "ACC", "ACC = '" & [ACC] & "'") <> "" Then ACC1 = DLookup("ACCKUT", "ACC", "ACC = '" & [ACC] & "'") & "*" Else ACC1 = ""
On Error GoTo Err_TURNCR
Dim rstTURNCR As DAO.Recordset
Set rstTURNCR = CurrentDb.OpenRecordset("SELECT Sum(ACCTurn.AccSumm) AS SumOfAccSumm FROM Doc1 INNER JOIN (ACCTurn INNER JOIN ACC ON ACCTurn.AccCr = ACC.ACC) ON Doc1.DID = ACCTurn.ADID WHERE (((Doc1.Date)Between # " & DDTE & " # And # " & DDTE2 & " #) AND ((ACC.ACCKUT) like '" & ACC1 & "'))")
If IsNumeric(rstTURNCR!SumOfAccSumm) Then TURN = rstTURNCR!SumOfAccSumm Else TURN = 0
TurnCr = Round(TURN, 2)
rstTURNCR.Close
Set rstTURNCR = Nothing
Exit_TURNCR:
Exit Function
Err_TURNCR:
TurnCr = 0
Resume Exit_TURNCR
End Function
Заполнение шаблона ексел
Private Sub Command33_Click()
Dim Date1 As Date, Date2 As Date
Date1 = Format$(ot, "DD/MM/YYYY")
Date2 = Format$(dot, "DD/MM/YYYY")
tok = SqlLookUp("select function from TABFunction where Row=" & 1)
fileXLT = CurrentProject.Path & "\HASH2.xls"
Set ExcelApplication = CreateObject("Excel.Application")
With ExcelApplication
.Workbooks.Open fileXLT
.Visible = True
End With
Set ExcelWorksheet = ExcelApplication.Sheets(1)
ExcelApplication.Cells(1, 2).Value = DLookup("[function]", "TABFunction", "[Row] = 1") '-функция с параметрами сохранена в таблице и с помощю dlookup хочу вывести и заполнить ексел как в строке (1), но выводит и заполняет текст функции а не его итог
ExcelApplication.Cells(2, 2).Value = TurnCr("6111", Date1, Date2) '----------------(1)----------функция работает нормально
End Sub | |
|
| |
|
|
|
| ExcelApplication.Cells(1, 2).FormulaR1C1 = "=" & DLookup("[function]", "TABFunction", "[Row] = 1") | |
|
| |
|
|
|
| Функция TurnCr описана в аксесе.
Мне нужно вывести в ексел не саму функцию а его итог. | |
|
| |
|
|
|
| теоретически можно использовать Eval
Практически я им никогда не пользовался
а такой вопрос, функция всегда одна меняются только аргументы? | |
|
| |
|
|
|
| Если бы функция была одна то можно было бы в таблице сохранять только параметры, но к сожалению функций 5 и количество параметров у каждого разные. | |
|
| |