Wypowiedzi
-
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... -
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.... -
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/ -
Ale ten plik masz zalinkowany?
-
Kod który znalazłeś działa tak samo...
a. pracy na RT
nie ma problemu
b. zabezpieczeń sieciowych (portów ...)
Jeżeli będą zablokowane porty odpowiedzialne za komunikacje z internetem to nie zadziała.
czy tutaj nie pojawią się jakieś problemu.
rozwiązanie śmiga bo uzywasz późnego wiązania.... -
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 -
Co znaczy, że musi uruchomić funkcje na serwerze?
Pobranie danych to najproście przez Microsoft.XMLHTTP lub msxml.xmlhttp -
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 -
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
-
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 -
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... -
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
-
Na formularzu właściwośc newrecord
Me.NewRecord
-
a co zwraca Ci to: [tb_id_fv] ?
-
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()
Michał Dziubek edytował(a) ten post dnia 21.09.12 o godzinie 13:56
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 -
Linijka
Set rs = con.Execute(strUP)
nadpisuje Ci recordset po którym robisz pętle...
A najbardziej prawdopodbne, że ten update nie zwraca recordsetu... -
najciemniej zawsze pod latarnią:
http://support.microsoft.com/kb/97757
http://msdn.microsoft.com/en-us/library/office/dd32764... -
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 -
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)) = ""