ShIvADeSt
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Tema123 Вот примерно что надо писать в макросе для заполнения Цитата: AppInitialize Set Sht = Workbooks("Название.xls").Worksheets("Лист1") Set Srv = CreateObject("sqlole.SQLServer") ' Create a SQL Server Object If UserForms.Count = 0 Or _ Not Sht.Parent.Names("Connected").Value = "=ИСТИНА" Then OK = False fConnect.Show If Not OK Then Exit Sub End If Sql = _ "USE " + db + _ " SET DATEFORMAT dmy" + _ " SELECT Convert(varchar(10),DateDays,104), DateDays FROM vDateDays" + _ " UNION SELECT Convert(varchar(10),DateWork,104), DateWork FROM vDateWork" + _ " ORDER BY DateDays DESC" Set res = Srv.ExecuteWithResults(Sql) Load fBuhJrnl For i = 1 To res.Rows fBuhJrnl.cbDateDays.AddItem (res.GetColumnString(i, 1)) Next i fBuhJrnl.cbDateDays.Value = res.GetColumnString(1, 1) Else Srv.Connect "Сервер", fConnect.tbName.Text, fConnect.tbPassword.Text End If OK = False fBuhJrnl.Show If Not OK Then Exit Sub End If Sql = "USE " + db + " SET DATEFORMAT dmy Exec pBuhJrnl @DateJrnl=""" + fBuhJrnl.cbDateDays.Value + """" Set res = Srv.ExecuteWithResults(Sql) i1 = 0: i2 = 0: i3 = 0: i4 = 0 it1 = Sht.Parent.Names("_it1").RefersToRange.Row + 1 it2 = Sht.Parent.Names("_it2").RefersToRange.Row + 1 it3 = Sht.Parent.Names("_it3").RefersToRange.Row + 1 it4 = Sht.Parent.Names("_it4").RefersToRange.Row + 1 For i = 1 To res.Rows If Left(res.GetColumnString(i, 2), 8) = "20202810" Or Left(res.GetColumnString(i, 3), 8) = "20202810" Then If Sht.Cells(it2 + i2 + 1, 1).Text = "Итого по" Then Sht.Cells(it2 + i2, 1).EntireRow.Insert ins = True Else ins = False End If Sht.Cells(it2 + i2, 1).Formula = res.GetColumnString(i, 1) Sht.Cells(it2 + i2, 2).Formula = "'" + res.GetColumnString(i, 2) Sht.Cells(it2 + i2, 3).Formula = "'" + res.GetColumnString(i, 3) Sht.Cells(it2 + i2, 4).Formula = res.GetColumnString(i, 4) |
---------- И создал Бог женщину... Существо получилось злобное, но забавное... |
|