Temat: dodanie kilkuaście rekordów jednoczesnie
Sławomir Broda:
Musiał być raz zdefiniować taką tabelę określając max wartości (w tym przykładzie auto numeracja wystarczy). Potem nic już dodawać nie musisz.
Rozwiązanie z tablicą pomocniczą od 1 do N bardzo mi się podoba.
Warto je zapamiętać i używać w różnych przypadkach, gdy trzeba w sztuczny sposób stworzyć X rekordów, gdzie X jest zmienne, ale raczej nieduże.
Swego czasu użyłem tego rozwiązania do drukowania N stron jakiegoś dokumentu.
Miałem
raport zrobiony w Accessie i miało się drukować tyle stron ile osób było na spotkaniu.
Tablica pomocnicza i bardzo intuicyjny warunek SQL załatwiły sprawę.
Marzena Szulta:
Dodawanie rekordów, w których jakieś pole będzieprzyjmowało konkretne wartości też jest
możliwe. Jednak tu trzeba wykorzystać Recordset i .AddNew.
Jeżeli nie znasz najprostszej pętli
VBA, to może być to trudne.
Pętla to prosta sprawa. Gorzej z recordset'em. Nigdy nie lubiłem tej konstrukcji w VBA. A odkąd poznałem pętle kursora w Oracle, to do recordest'u czuję jeszcze większą niechęć.
Ale jeżeli chodzi tylko o dodawanie rekordów w pętli, to wystarczy użycie znacznie prostszej metody DoCmd.RunSQL.
Przykładowa procedura VBA:
Public Sub wstaw_liczby_od_1_do_n(max_liczba As Integer)
Dim i As Integer
Dim wyrazenie_sql As String
For i = 1 To max_liczba
ciag_sql = "Insert into tablica_docelowa (pole_docelowe) values ( " & i & " )"
DoCmd.RunMacro wyrazenie_sql
Next i
End Sub
Wojciech Muszyński edytował(a) ten post dnia 22.02.13 o godzinie 06:50