Michał Dziubek

Programista, INFORM\'1

Wypowiedzi

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie SQL sync dwóch tabel
    5.11.2012, 11:39

    Mierzenie wydajności to nie jest raczej odczucie, a pomiary, coś co jest szybsze w danym wypadku w inny już niekoniecznie.
    Musisz to sobie zmierzyć inaczej to gadanie o pogodzie.

    co do pytanie: CurrentDB vs DBEngine(0)(0) to zasadnicza różnica jest taka, że currentDB tworzy nową instancje natomiast DBEngine(0)(0) jest wskaźnikiem do obiektu,

    zapoznać się możesz też z tym:
    https://groups.google.com/forum/?hl=en&fromgroups=#!msg...

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie SQL sync dwóch tabel
    31.10.2012, 18:04

    To nigdy nie jest optymalne porównanie tabel w obrebie lokalna tabela <-> link, bo access i tak pobiera całość zalinkowanej tabeli.

    Natomiast jedno jest pewne przeczenia w warunkach nie sa optymalizowane, najproście osiągnąć to takim joinem:

    SELECT 
    PNTCOST.ID
    , PNTCOST.P_DATE
    FROM
    PNTCOST
    LEFT JOIN TBL_PNT ON PNTCOST.ID = TBL_PNT.ID
    WHERE
    TBL_PNT.ID Is Null;


    sprawdź czy nie będzie szybciej....

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie VBA pobierz datę z strony www
    31.10.2012, 13:20

    Bo to generalnie nie do tego służy, jak już miałbym chodzić po stronie z sesją i ciasteczkami to szedłbym w stronę czegoś takiego:
    http://sourceforge.net/projects/libcurl-vb/

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie plik tekstowy jako źródło danych
    31.10.2012, 12:14

    Ale ten plik masz zalinkowany?

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie VBA pobierz datę z strony www
    31.10.2012, 12:13

    Kod który znalazłeś działa tak samo...

    a. pracy na RT
    nie ma problemu
    b. zabezpieczeń sieciowych (portów ...)
    czy tutaj nie pojawią się jakieś problemu.
    Jeżeli będą zablokowane porty odpowiedzialne za komunikacje z internetem to nie zadziała.

    rozwiązanie śmiga bo uzywasz późnego wiązania....

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie VBA pobierz datę z strony www
    31.10.2012, 10:49

    Czyli nie musi samo pobranie strony to nie problem:

    Function GetWebSite(url) As String
    Dim objWeb As Object
    Set objWeb = CreateObject("Microsoft.XMLHTTP")
    objWeb.Open "GET", url, False
    objWeb.send

    If objWeb.status = 200 Then
    GetWebSite = objWeb.responseText
    Else
    GetWebSite = "Nie udało się"
    End If

    Set objWeb = Nothing

    End Function


    Kwestia, bardziej tego jak ze zwróconego kodu HTML pobrać to co nas interesuje...Michał Dziubek edytował(a) ten post dnia 31.10.12 o godzinie 10:49

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie VBA pobierz datę z strony www
    30.10.2012, 22:52

    Co znaczy, że musi uruchomić funkcje na serwerze?
    Pobranie danych to najproście przez Microsoft.XMLHTTP lub msxml.xmlhttp

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Uaktualnianie wartości pola tekstowe
    26.10.2012, 00:00

    Nie da się tego tak zrobić, a raczej Twoje rozwiązanie jest niepełne,
    Stworzenie w ten sposób formularza tworzy jego instancje.
    Jest to generalnie jeden ze sposobów, aby otworzyć ten sam formularz klika razy i odwołać się musisz do nie go via zmienna, a do kontrolek via kolekcja controls zmiennuktóra go powołała:

    Set FormularzWynik = New Form_frmWynik
    FormularzWynik.Controls("txtWYnik").Locked = False
    FormularzWynik.Controls("txtWYnik").Value = Now()
    FormularzWynik.Controls("txtWYnik").Locked = True

    Me.Visible = False
    ' Nie możesz niszczyć obiektu formularza który chcesz pokazać
    ' Set FormularzWynik = Nothing


    Do pełnego implementowania instacji tego samego formularza brakuje Ci obiektu kolekcji, w którym będziesz przechowywał otwarte formularze....

    Od siebie dodam, że nie musisz zmieniać własciwości Locked, aby przypisać coś kontrolce via VBAMichał Dziubek edytował(a) ten post dnia 26.10.12 o godzinie 00:09

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie problem z kwerendą
    25.10.2012, 23:52

    Mniej więcej tak:

    SELECT 
    Pracownicy.Imie
    ,Pracownicy.Nazwisko
    From
    Pracownicy
    Left join (select
    medale.id_pracownik
    from
    medale
    inner join typy_medali on TYPY_MEDALI.ID_TYP_MEDALU = MEDALE.ID_MEDAL_TYP
    where
    TYPY_MEDALI.ID_TYP_MEDALU=4
    ) as m4 on m4.id_pracownik = Pracownicy.ID_PRACOWNIKA
    where
    m4.ID_PRACOWNIKA is null

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Dwie tabele i rocorset
    16.10.2012, 15:07

    Jeżeli te tabele da się połączyc jedna pod drugą, to wtedy union all:

    select * from tabela1
    union all
    select * from tabela2

    Jeżeli nie to robisz to jak w przypadku pojedynczej tabeli tylko dwukrotnie...Michał Dziubek edytował(a) ten post dnia 16.10.12 o godzinie 15:08

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Formatowanie pola tekstowego
    8.10.2012, 09:12

    Jeżeli to wersja access >= 2007: http://office.microsoft.com/en-us/access-help/insert-o...

    Jeżeli mniejsza niz < 2007 to: http://www.lebans.com/richtext.htm

    Wtedy szablony wyników możesz worzyć np. w wordadzie, a później w kodzie replacem zamieniac...

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Klawisze skrótów
    2.10.2012, 17:44

    Przy załodawoniu formularza (Form_Load)


    Me.KeyPreview = True


    I zdarzenie przy zwolnieniu klawisza


    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = kodktóry cię interesuje Then
    Call Button_Click()
    end if

  • Michał Dziubek
  • Michał Dziubek
    Wpis na grupie Ms Access w temacie update or insert
    27.09.2012, 17:40

    Na formularzu właściwośc newrecord

     Me.NewRecord 

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Błąd składniowy Run-time error '3075'
    24.09.2012, 11:23

    a co zwraca Ci to: [tb_id_fv] ?

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Operacje na Recordset
    21.09.2012, 13:53

    Prościej:

    rs to pączek, rekord to 1 gryz

    w swoim kodzie robisz coś takiego
    1. bierz pączka
    2. robisz gryz (jesteś w pierwszym rekordzie)
    3. poczym zamieniasz tego pączka na nic (nothing), linijka cytowana przezemnie
    4. chcesz wziąść nastepnego gryza...

    Kod przekomlikowany nie muszisz robi rekordsetu aby wykonać update możesz tak

    Private Sub cmdAdd_Click()
    Dim daDate As Date
    Dim strZm As String
    Dim strUP As String

    daDate = InputBox("Podaj datę w formacie RRRR-MM-DD")
    strZm = InputBox("Podaj numer zmiany")


    strUP = "UPDATE tblCzesc SET tblCzesc.zmiana = '" & strZm & "', tblCzesc.data = '" & daDate & "'" & _
    " WHERE (((tblCzesc.data) Is Null))"

    currentproject.connection.Execute strUP
    End Sub


    Przy metodzie z recordsetem powinno to wygladać tak:

    Private Sub cmdAdd_Click()
    Dim rs As ADODB.Recordset
    Dim daDate As Date
    Dim strZm As String
    Dim txtSQL As String

    daDate = InputBox("Podaj datę w formacie RRRR-MM-DD")
    strZm = InputBox("Podaj numer zmiany")

    txtSQL = "SELECT tblCzesc.ID_Czesc, tblCzesc.Czesc, tblCzesc.maszyna, tblCzesc.zmiana, tblCzesc.data" & _
    " FROM tblCzesc" & _
    " WHERE (((tblCzesc.data) Is Null))"


    Set rs = New ADODB.Recordset
    rs.CursorType = adOpenKeyset
    rs.LockType = adLockOptimistic
    rs.CursorLocation = adUseClient

    rs.Open txtSQL, CurrentProject.Connection
    rs.MoveFirst
    Do Until rs.EOF
    rs!data = daDate
    rs!zmiana = strZM
    rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    End Sub
    Michał Dziubek edytował(a) ten post dnia 21.09.12 o godzinie 13:56

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Operacje na Recordset
    21.09.2012, 12:00

    Linijka

    Set rs = con.Execute(strUP)


    nadpisuje Ci recordset po którym robisz pętle...
    A najbardziej prawdopodbne, że ten update nie zwraca recordsetu...

  • Michał Dziubek
  • Michał Dziubek
    Wpis na grupie Ms Access w temacie "wyskakujący" podformularz, relacja jeden-do-jedneg...
    18.09.2012, 09:10

    Oczywiście że jesteś wstanie to rozwiazać dwoma tabelami + jedna pomocniczą.
    Tabela 1: Narzędzia
    która zawiera informacje ogólne o narzędziach i umownie pole typ
    Tabela 2: Narzędzia_cechy
    konstrukcja: id_narzedzia, cecha, wartość
    tabela 3: cechy_typ
    pola typ, cecha

    Rozwiązanie.

    Formularz główny: pokazuje dane z tabeli 1 + podformularz pokazujący dane z tabeli 2

    Teraz użytkownik wprowadza narzędzie i określa jego typ, na tej podstawie budujesz liczbę cech do wypełnienia na podformularzu.
    Tak w dużym skrócie, zdecydowanie prościej niż do każdego typ tworzyć osobne tabeleMichał Dziubek edytował(a) ten post dnia 18.09.12 o godzinie 09:11

  • Michał Dziubek
    Wpis na grupie Ms Access w temacie Tworzenie podkwerend
    17.09.2012, 15:28

    trim jak najbardzie usuwa spacje z łańcuchów gdzie tylko one występują, Twój problem dotyczy "ligiki trójwartościowej" 0;null;1, początkujący mają problem ze zrozumieniem że null <> "", dodatkowym utrudnieniem jest to, że srodowisko access-a niepokazuje null w podglądzie danych (SQL Server już tak).
    Co do Twojego zapytania to warunek może wyglądać tak
    Trim(Nz(pole)) = ""

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do