Marcin C.

Marcin C. poczatkujący

Temat: dodanie kilkuaście rekordów jednoczesnie

Witam serdecznie, potrzebuję Waszej pomocy w takim problemie: jak wykonać takie zadanie : po wpisaniu w formularzu liczby : "nr początkowy" np.:1 i "nr końcowy" nr 10 liczby z tego zakresu czyli : 1,2,3,4,5,6,7,8,9,10 powinny się dodać do tabeli w jako kolejne rekordy??? Czy to jest możliwe w jakiś sposób przez kwerendę dołączająca czy VBA ?
Z tego co się dowiedziałem do wykonania tego potrzebne jest użycie pętli FOR, ponieważ dopiero zaczynam się uczyć, czy ktoś mógłby podpowiedzieć, wyjaśnić z opisem działania ?
Przy okazji, jeżeli ktoś odpowie, czy mógłby mi polecić jakąś książkę do nauki VBA dla początkującego ?Marcin C. edytował(a) ten post dnia 21.02.13 o godzinie 09:32
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: dodanie kilkuaście rekordów jednoczesnie

O samej pętli poczytasz tu:
http://mojezmaganiainformatyczne.blox.pl/2010/08/Petle...

Dodawanie rekordów, w których jakieś pole będzie przyjmowało konkretne wartości też jest możliwe. Jednak tu trzeba wykorzystać Recordset i .AddNew. Jeżeli nie znasz najprostszej petli VBA, to może być to trudne.
Książka? Jedna z lepszych to:
Access .Programowanie w VBA
Obawiam się jednak, że powinieneś zacząć od Biblii Accessa - też w Helionie.
Marcin C.

Marcin C. poczatkujący

Temat: dodanie kilkuaście rekordów jednoczesnie

Dziękuje serdecznie za podpowiedź
Biblię posiadam, lecz wydaje mi się, że jeżeli się tyczy VBA jest tam trochę mało.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: dodanie kilkuaście rekordów jednoczesnie

No, ale pętle akurat są :)
Fakt, że w Biblii VBA nie jest zbyt rozbudowane, ale pierwsze początki są. No i zawsze nieoceniony przycisk F1.
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: dodanie kilkuaście rekordów jednoczesnie

Marcin C.:
Witam serdecznie, potrzebuję Waszej pomocy w takim problemie: jak wykonać takie zadanie : po wpisaniu w formularzu liczby : "nr początkowy" np.:1 i "nr końcowy" nr 10 liczby z tego zakresu czyli : 1,2,3,4,5,6,7,8,9,10 powinny się dodać do tabeli w jako kolejne rekordy??? Czy to jest możliwe w jakiś sposób przez kwerendę dołączająca czy VBA ?
Z tego co się dowiedziałem do wykonania tego potrzebne jest użycie pętli FOR, ponieważ dopiero zaczynam się uczyć, czy ktoś mógłby podpowiedzieć, wyjaśnić z opisem działania ?
Przy okazji, jeżeli ktoś odpowie, czy mógłby mi polecić jakąś książkę do nauki VBA dla początkującego ?
Da się bez VBA. Tworzysz sobie tabelę, w której zawierasz maksymalny zakres wartości nr. początkowy i numer końcowy. Następnie tworzysz wybierającą, na podstawie tej tabli ograniczając wartości do wskazań formularze. Potem dołączającą dołączasz ten ograniczony zakres.
Marcin C.

Marcin C. poczatkujący

Temat: dodanie kilkuaście rekordów jednoczesnie

Sławomir Broda:
Marcin C.:
Witam serdecznie, potrzebuję Waszej pomocy w takim problemie: jak wykonać takie zadanie : po wpisaniu w formularzu liczby : "nr początkowy" np.:1 i "nr końcowy" nr 10 liczby z tego zakresu czyli : 1,2,3,4,5,6,7,8,9,10 powinny się dodać do tabeli w jako kolejne rekordy??? Czy to jest możliwe w jakiś sposób przez kwerendę dołączająca czy VBA ?
Z tego co się dowiedziałem do wykonania tego potrzebne jest użycie pętli FOR, ponieważ dopiero zaczynam się uczyć, czy ktoś mógłby podpowiedzieć, wyjaśnić z opisem działania ?
Przy okazji, jeżeli ktoś odpowie, czy mógłby mi polecić jakąś książkę do nauki VBA dla początkującego ?
Da się bez VBA. Tworzysz sobie tabelę, w której zawierasz maksymalny zakres wartości nr. początkowy i numer końcowy. Następnie tworzysz wybierającą, na podstawie tej tabli ograniczając wartości do wskazań formularze. Potem dołączającą dołączasz ten ograniczony zakres.
Raczej nie do końca o to mi chodziło, gdyż chyba wg. Twojego przepisu musiałbym te przykładowe 10 liczb czyli: 1,2,3,4,5,6,7,8,9,10 wprowadzić ręcznie kolejno do tabeli i dopiero je za pomocą kwerendy wybrać.
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: dodanie kilkuaście rekordów jednoczesnie

Marcin C.:
Sławomir Broda:
Marcin C.:
Witam serdecznie, potrzebuję Waszej pomocy w takim problemie: jak wykonać takie zadanie : po wpisaniu w formularzu liczby : "nr początkowy" np.:1 i "nr końcowy" nr 10 liczby z tego zakresu czyli : 1,2,3,4,5,6,7,8,9,10 powinny się dodać do tabeli w jako kolejne rekordy??? Czy to jest możliwe w jakiś sposób przez kwerendę dołączająca czy VBA ?
Z tego co się dowiedziałem do wykonania tego potrzebne jest użycie pętli FOR, ponieważ dopiero zaczynam się uczyć, czy ktoś mógłby podpowiedzieć, wyjaśnić z opisem działania ?
Przy okazji, jeżeli ktoś odpowie, czy mógłby mi polecić jakąś książkę do nauki VBA dla początkującego ?
Da się bez VBA. Tworzysz sobie tabelę, w której zawierasz maksymalny zakres wartości nr. początkowy i numer końcowy. Następnie tworzysz wybierającą, na podstawie tej tabli ograniczając wartości do wskazań formularze. Potem dołączającą dołączasz ten ograniczony zakres.
Raczej nie do końca o to mi chodziło, gdyż chyba wg. Twojego przepisu musiałbym te przykładowe 10 liczb czyli: 1,2,3,4,5,6,7,8,9,10 wprowadzić ręcznie kolejno do tabeli i dopiero je za pomocą kwerendy wybrać.
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.
Wojciech Muszyński

Wojciech Muszyński Tworzenie aplikacji
bazodanowych
(Oracle, APEX,
Access)

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
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: dodanie kilkuaście rekordów jednoczesnie

Wojciech Muszyński:
Sławomir Broda:
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ęć.
Recordset dobra sprawa. Zwłaszcza w excelu z metodą rangową copyfromrecordset.

konto usunięte

Temat: dodanie kilkuaście rekordów jednoczesnie

Sławomir Broda:
Wojciech Muszyński:
Sławomir Broda:
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ęć.
Recordset dobra sprawa. Zwłaszcza w excelu z metodą rangową copyfromrecordset.

ta metoda raczej ssie, nadpisuje jak leci wszystko co ma na drodze
lepsze jest QueryTable i pompowanie Rercordsetu do środka, masz wtedy wsxzystko co oferuje tabela
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: dodanie kilkuaście rekordów jednoczesnie

Przemysław R.:
Sławomir Broda:
Wojciech Muszyński:
Sławomir Broda:
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ęć.
Recordset dobra sprawa. Zwłaszcza w excelu z metodą rangową copyfromrecordset.

ta metoda raczej ssie, nadpisuje jak leci wszystko co ma na drodze
lepsze jest QueryTable i pompowanie Rercordsetu do środka, masz wtedy wsxzystko co oferuje tabela
Oczywiście ma swoje wady, ale szybkość ładowanie do excela jest niezła.
Wojciech Muszyński

Wojciech Muszyński Tworzenie aplikacji
bazodanowych
(Oracle, APEX,
Access)

Temat: dodanie kilkuaście rekordów jednoczesnie

Sławomir Broda:
Recordset dobra sprawa. Zwłaszcza w excelu z metodą rangową copyfromrecordset.

Ja nie twierdzę, że recordset jest zły. Ja go po prostu nie lubię :)

W konkretnym przypadku użycie recordest'u do dodania KILKUNASTU rekordów to zbyt zaawansowana technika. Zdecydowanie wolę choćby kwerendę dołączającą. Stąd bardzo podoba mi się technika z tabelą pomocniczą "od 1 do N"Wojciech Muszyński edytował(a) ten post dnia 22.02.13 o godzinie 06:58
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: dodanie kilkuaście rekordów jednoczesnie

Wojciech Muszyński:
Sławomir Broda:
Recordset dobra sprawa. Zwłaszcza w excelu z metodą rangową copyfromrecordset.

Ja nie twierdzę, że recordset jest zły. Ja go po prostu nie lubię :)

W konkretnym przypadku użycie recordest'u do dodania KILKUNASTU rekordów to zbyt zaawansowana technika. Zdecydowanie wolę choćby kwerendę dołączającą. Stąd bardzo podoba mi się technika z tabelą pomocniczą "od 1 do N"
Pełna zgoda. VBA tylko tam gdzie nie da się inaczej.

Następna dyskusja:

Modyfikacja rekordów




Wyślij zaproszenie do