Я использую пользовательскую форму в excel, чтобы пользователи могли импортировать данные требований из базы данных Access и вставлять их в место назначения в книге.VBA Excel - импорт из данных доступа и суммирования
Код, приведенный ниже, позволяет импортировать номера претензий за каждый из последних 5 лет для определенного номера политики.
База данных доступа в настоящее время суммирует данные претензий, так что все формулы политики Y в году Y находятся на одной строке. Тем не менее, мне нужно изменить код, чтобы отдельные суммы требований могли быть втянуты и затем скорректированы на основе параметров, установленных в пользовательской форме (например, укупоривание претензий на 100 000), а затем суммированы так, чтобы все (скорректированные требования) находились на одна строка для каждого года.
Я включил изображение того, как выглядит структура базы данных раньше и как она выглядит сейчас. Я хотел бы включить что-то, что охватывает все претензии в год андеррайтинга и суммирует общее количество.
Не вдаваясь в излишние подробности, я хотел бы знать, как суммировать данные после того, как я скорректировал их. Нужен ли мне следующий цикл в коде ниже?
Public Const RawdataDB = "N:\***\Rawdata DB.accdb"
Private Sub CommandButton1_Click()
Dim dbRawData As Database
Dim rTemp As Recordset
Dim sSQL As String
Dim YearTemp As Integer
Dim i As Integer
i = 1
Do Until i = 6
YearTemp = Year(Range("RenewalDate")) - i
Set dbRawData = OpenDatabase(RawdataDB, False, False, "MS Access;PWD=*****")
sSQL = "SELECT Galway_Claims.* FROM Galway_Claims WHERE (Galway_Claims.PolicyNo=" & Range("PolicyNoNew") & " AND Galway_Claims.Year=" & Range("UWYear") - 1 & " AND Galway_Claims.HistoricYear=" & i & ");"
Set rTemp = dbRawData.OpenRecordset(sSQL)
Controls("ClaimNos" & i).Value = Format(rTemp!ClaimNosD, "0.0")
i = i + 1
Loop
rTemp.Close
End Sub
Чтобы было ясно: у вас есть " База данных теперь "из вашей картинки уже в базе данных Access? Или вы хотите изменить код импорта так, чтобы он получал данные из базы данных до выхода из системы и помещал ее в excel в структуру, которую вы теперь обозначили как «база данных»? Не могли бы вы создать запрос в доступе, чтобы изменить структуру, а затем импортировать ее 1: 1 в Excel? И вам нужно получить сумму ClaimAmts для определенного ClaimRef? В Excel? – Johanness
Привет Johanness. Да, теперь у меня есть «база данных» в базе данных доступа. База данных раньше была структурирована как «база данных до», где данные претензий были суммированы по годам. Так что все, что мне нужно было сделать, это найти ячейку в таблице доступа для конкретного года/политики. Но теперь претензии не суммируются в течение года - я хочу суммировать их в год в своем коде. Вероятно, вы думаете, почему не просто сохранить структуру «старой базы данных», но мне нужно настроить требования на основе параметров в моей пользовательской форме, а затем суммировать (я доволен тем, как я сделаю часть настройки). –
Мне все еще неясно. Ваш код не имеет особого смысла. Это работает? Вы выбираете несколько наборов данных, а затем заполняете их в элемент управления (какой контроль?). И где вы хотите поставить Sum? – Johanness