Страница: 1 |
Страница: 1 |
Вопрос: Форма с параметрами
Добавлено: 25.01.10 10:27
Автор вопроса: Iren | ICQ: 496876583
Я добавила форму. На ней разместила 2 текст бокса. В один вводится дата. Это первый параметр, который подставляется в этот запрос
Sql = Sql & " from bis.charges t"
Sql = Sql & " where t.prcl_prcl_id=10287"
Sql = Sql & " and t.del_user is null"
Sql = Sql & " and t.navi_date like '" & dt & "'"
Второй параметр это текст. Это тоже параметр, который подставляется сюда
Sql = Sql & " where t.dialed like '0770' and t.rec_type like '08'"
Sql = Sql & " and t.start_time like '" & dt & "'"
в коде я добавила следующее...
Dim cl As String
TextBox1 = dt
dt = Format(Date, "DD.MM.YY")
TextBox2 = cl
На форму я добавила кнопку. При нажатии на которую должны формироваться данные. Что должно быть в событии этой кнопки (какой код)? и и какой код нужно добавить, чтобы эта форма была видна при открытии Excel-ского дока?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Iren
ICQ: 496876583
Вопросов: 11
Ответов: 25
Профиль | | #1
Добавлено: 26.01.10 07:26
Я добавила форму. Кинула на форму текстбоксы. прописала в коде
Dim con As ADODB.Connection: Set con = New ADODB.Connection
Dim dt As Date
Dim cl As String
dt = UserForm1.TextBox1.Value
cl = UserForm1.TextBox2.Value
con.Open "Provider=MSDAORA.1;Password=pwd;User ID=userata Source=mydb;Persist Security Info=True"
...
Dim w As Integer
Dim i As Integer
For i = 1 To ActiveSheet.Columns.Count
If Cells(1, i).Value = "" Then
w = i
...
Cells(1, i).Value = dt
Dim rspricall1 As ADODB.Recordset: Set rspricall1 = New ADODB.Recordset
Set rspricall1.ActiveConnection = con
Sql = "select count(t.chrg_id), sum(t.amount_$)"
Sql = Sql & " from bis.charges t"
Sql = Sql & " where t.prcl_prcl_id=10287"
Sql = Sql & " and t.del_user is null"
Sql = Sql & " and t.navi_date like '" & dt & "'"
rspricall1.Open Sql, con
Sheets("Лист1".Select
Cells(3, i).Value = rspricall1.Fields(0).Value
If Not IsNull(rspricall1.Fields(1).Value) Then Cells(4, i).Value = rspricall1.Fields(1).Value Else Cells(4, i).Value = 0
rspricall1.Close
...
Dim rspricall17 As ADODB.Recordset: Set rspricall17 = New ADODB.Recordset
Set rspricall17.ActiveConnection = con
Sql = "select count(1) from calls_" & cl & " t"
Sql = Sql & " where t.dialed like '0770' and t.rec_type like '08'"
Sql = Sql & " and t.start_time like '" & dt & "'"
rspricall17.Open Sql, con
Sheets("Лист1".Select
Cells(55, i).Value = rspricall17.Fields(0).Value
rspricall17.Close
При выполнении вставляет нулевые значения, хотя данные по запросу есть. Не подскажите почему может быть такое?
Номер ответа: 2
Автор ответа:
Iren
ICQ: 496876583
Вопросов: 11
Ответов: 25
Профиль | | #2
Добавлено: 27.01.10 14:41
Добрый день еще раз! Смотрю ни кто не хочет помочь, может вопрос не понятен. Вот код
Dim con As ADODB.Connection: Set con = New ADODB.Connection
con.Open "Provider=MSDAORA.1;Password=pwd;User ID=userata Source=mydb;Persist Security Info=True"
Dim dt As Date
dt = UserForm1.TextBox5.Value
Dim w As Integer
Dim i As Integer
For i = 1 To ActiveSheet.Columns.Count
If Cells(1, i).Value = "" Then
w = i
Sheets("Лист1".Select
Cells(1, i).Value = dt
Dim rspricall7 As ADODB.Recordset: Set rspricall7 = New ADODB.Recordset
Set rspricall7.ActiveConnection = con
Sql = "select count(t.chrg_id), sum(t.amount_$)"
Sql = Sql & " from charges t"
Sql = Sql & " where t.prcl_prcl_id=10109"
Sql = Sql & " and t.del_user is null"
Sql = Sql & " and t.navi_date like '" & dt & "'"
rspricall7.Open Sql, con
Sheets("Лист1".Select
Cells(23, i).Value = rspricall7.Fields(0).Value
If Not IsNull(rspricall7.Fields(1).Value) Then Cells(24, i).Value = rspricall7.Fields(1).Value Else Cells(24, i).Value = 0
rspricall7.Close
Exit For
End If
Next i
End Sub
Есть форма. На ней один текст бокс и кнопка. При запуске я ввожу в текст бокс дату, нажимаю кнопку и на листе Excel появляются данные, но данные НУЛЕВЫЕ. это не верно, так как запрос возвращает НЕ НУЛЕВЫЕ данные. Помогите пожалуйста.
Номер ответа: 3
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #3
Добавлено: 28.01.10 21:59
Сильно не смотрела, потому как бежать надо.
Но у меня часто было так (работала с Access): системная дата разделитель /, дату для записи в запрос тоже формировала через /. И еще "вредный" Access желал работать с такими запросами только при формировании даты в формате "ММ/ДД/ГГГГ" и никак иначе. Если через точку пробовала, не желал ничего показывать, хотя в таблице данные были.
Вот так. Попробуй, может поможет.