Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

vba excel - wyszukiwanie w bazie danych

wuwietom 07 Mar 2014 13:15 1704 1
  • #1
    wuwietom
    Level 8  
    Zabrałąe sie za tworzenie bazy danych i wymysliłem sobie że zrobie formularz i bedzie sam uzupełniał bazę danych i ok wyszło mi coś tam w vba napisało mi się jako tako. Ale stoję teraz pod murem mam bazę, która zawiera obecnie 1750 rekordów w 16 kolumnach. W kolumnach mam pokolei: nazwisko, imię, data zatrudnienia...... i np w ostatnich dwóch data badania i data ważności badania. Jak zrobić by w odrebnym listbox lub w inny sposób dostać tylko te rekordy pracowników, dla których data ważności badania jest <= 30 dni od danego dnia np. dziś. Chće by móc dostać raport z wszystkimi pracownikami których termin wazności badania zbliża sie i jest bliższy niz 30 dni. Ktoś może mi pomóc? coś musze zamieścić? wygląd bazy czy tez kod jak baza sie uzupełnia przez formularz?

    Dodano po 1 [minuty]:

    dodam jeszcze fargment kodu z tego mojego arkusza
    Private Sub frmRejestr_bhp_Click()
    Load frmRejestr_bhp
    frmRejestr_bhp.Show
    End Sub

    Private Sub cmb_clear_Click()
    Unload frmRejestr_bhp
    Load frmRejestr_bhp
    frmRejestr_bhp.Show
    End Sub

    Private Sub cmb_zapisz_Click()
    Dim pierwollin As Long
    pierwollin = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
    ActiveSheet.Cells(pierwollin, 1).Value = Me.txt_nazwisko.Value
    ActiveSheet.Cells(pierwollin, 2).Value = Me.txt_imie.Value
    ActiveSheet.Cells(pierwollin, 3).Value = Me.txt_staly.Value
    ActiveSheet.Cells(pierwollin, 4).Value = Me.txt_Datazatrudnienia.Value
    ActiveSheet.Cells(pierwollin, 5).Value = Me.cmb_stanowisko.Value
    ActiveSheet.Cells(pierwollin, 6).Value = Me.cmb_typstanowiska.Value
    ActiveSheet.Cells(pierwollin, 7).Value = Me.txt_kod.Value
    ActiveSheet.Cells(pierwollin, 8).Value = Me.txt_miasto.Value
    ActiveSheet.Cells(pierwollin, 9).Value = Me.txt_ulica.Value
    ActiveSheet.Cells(pierwollin, 10).Value = Me.txt_Dataur.Value
    ActiveSheet.Cells(pierwollin, 11).Value = Me.txt_miejsceur.Value
    ActiveSheet.Cells(pierwollin, 12).Value = Me.txt_Databad.Value
    ActiveSheet.Cells(pierwollin, 13).Value = Me.txt_Datawazbad.Value
    ActiveSheet.Cells(pierwollin, 14).Value = Me.txt_Datawstep.Value
    ActiveSheet.Cells(pierwollin, 15).Value = Me.txt_Dataokres.Value
    ActiveSheet.Cells(pierwollin, 32).Value = Me.chck_umowa.Value
    ActiveSheet.Cells(pierwollin, 33).Value = Me.chck_dokumenty.Value
    ActiveSheet.Cells(pierwollin, 35).Value = Me.chck_instruktaz.Value
    ActiveSheet.Cells(pierwollin, 38).Value = Me.chck_ryzyko.Value
    ActiveSheet.Cells(pierwollin, 39).Value = Me.chck_kwalifikacje.Value
    ActiveSheet.Cells(pierwollin, 40).Value = Me.chck_zakres.Value
    ActiveSheet.Cells(pierwollin, 41).Value = Me.chck_oswiadczenie.Value
    ActiveSheet.Cells(pierwollin, 42).Value = Me.chck_dowod.Value
    'czyszczenie formularza
    txt_nazwisko.Value = ""
    txt_imie.Value = ""
    txt_staly.Value = ""
    txt_Datazatrudnienia.Value = ""
    cmb_stanowisko.Value = ""
    cmb_typstanowiska.Value = ""
    txt_kod.Value = ""
    txt_miasto.Value = ""
    txt_ulica.Value = ""
    txt_Dataur.Value = ""
    txt_miejsceur.Value = ""
    txt_Databad.Value = ""
    txt_Datawazbad.Value = ""
    txt_Datawstep.Value = ""
    txt_Dataokres.Value = ""
    chck_umowa.Value = False
    chck_dokumenty.Value = False
    chck_instruktaz.Value = False
    chck_ryzyko.Value = False
    chck_kwalifikacje.Value = False
    chck_zakres.Value = False
    chck_oswiadczenie.Value = False
    chck_dowod.Value = False
    OptionUnknown = True
    End Sub
  • #2
    marcinj12
    Level 40  
    Zrób zwykłą pętlę For w które będziesz sprawdzał, czy data jest <= tej dacie. Jeśli tak - wyrzuć wiersz do osobnego arkusza albo dodaj go na listę. Z czym konkretnie masz problem?