konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

Tylko chodzi mi o komunikaty przy konkretnej kwerendzie, a nie globalnie
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

No ale jak...? Bez kodu? Się nie da, raczej.

Jakby ją ruszyć z kodu to ja bym to tak:


With DoCmd
.SetWarnings False
.RunSQL "tu sql"
.SetWarnings True
End With
Bartosz Borczyk edytował(a) ten post dnia 17.09.09 o godzinie 16:59
Jacek Dzwonkowski

Jacek Dzwonkowski Informatyk, Bazy
danych, OEE

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

uruchomisz też kwerę makrem i tam też masz opcje okno ustaw ostrzeżenie - dajesz na nie. ale na końcu makra daj na tak :) Wyłączanie komunikatów jest groźne !!

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

Dzięki.

A nie macie wrażenia że bez sęsu że nie ma tego po prostu jako właściwość kwerendy ?

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

currentproject.connection.execute "delete from costam"

dim a as adodb.recordset
set a = currentproject.connection.execute ("select from costam")

o nic nie pyta tylko robi za pomocą ADO a nie DAO tak jak docmd.runsql lub docmd.openquery

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

Maciek Głuszak:
Dzięki.

A nie macie wrażenia że bez sęsu że nie ma tego po prostu jako właściwość kwerendy ?

to właściwość Accessa
docmd przepuszcza zapytanie przez jego bebechy i dopiero robi

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

Panie, tak to się będę bawił ale jak się trochę z podstawami ogarnę.

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

to są podstawy :)
tyle że ADO

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

Dobhra. Rozkminiam. Weź pomóż pliz bo coś słabo mi idzie.
Recordset to z tego co rozumim ileś rekordów.

Dlaczego zatem

![jakaśtamnazwa] zwróci mi wartość z jednego pola. Jakiego ? Pierwszego ? Ostatniego ?

Jak np. przeiterować po wszystkich rekordach, zwrócić wartość konkretnego, czy dostać counta ?

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

        Set aRs = aComm.Execute

While Not aRs.EOF
With Me.ListBox1
.AddItem aRs.Fields("object_id").Value
.List(x, 1) = aRs.Fields("name").Value
.List(x, 2) = aRs.Fields("type").Value
x = x + 1
aRs.MoveNext
End With
Wend


ars.RecordCount

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

Dzięki.
Tylko dlaczego .recordcount zawsze mi zwraca -1 ?

konto usunięte

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

http://forums.mysql.com/read.php?37,25644,25649#msg-25649
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: a jak pozbyć się komunikatów przy kwerendzie ?


Sub próba_spreju()
Dim rcs As DAO.Recordset
Dim ilość As Long
Dim licznik As Long
Dim fld As DAO.Field
Dim rekord As String

Set rcs = CurrentDb.OpenRecordset("nazwa_tabeli", dbOpenTable)
'inny zestaw dla kwerendy: .OpenRecordset("nazwa_kwerendy", dbOpenDynaset)

ilość = 0
licznik = 0

With rcs

'ilość
.MoveLast
ilość = .RecordCount
.MoveFirst

'pętla
Do Until .EOF

licznik = licznik + 1
SysCmd acSysCmdSetStatus, licznik & "/" & ilość & " (" & Format(licznik / ilość, "Percent") & ")"

rekord = ""

For Each fld In .Fields
rekord = rekord & fld.Value & ";"
Next fld

rekord = Left(rekord, Len(rekord) - 1)

Debug.Print rekord

.MoveNext
Loop

.Close
End With

Set rcs = Nothing

SysCmd acSysCmdClearStatus
MsgBox "Gotowe!"
End Sub
Bartosz Borczyk edytował(a) ten post dnia 18.09.09 o godzinie 00:25

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Bartek Borczyk

Bartek Borczyk Operator liczb i
słów

Temat: a jak pozbyć się komunikatów przy kwerendzie ?

To ja mam pytanie. Chce sobie sprawdzić co szybsze na tabeli, która ma 13158 rekordów. Testuję poprzez:


Sub test1()
Dim rcs As DAO.Recordset

Dim ilość As Long
Dim licznik As Long
Dim fld As DAO.Field
Dim rekord As String

Dim start As Date
Dim koniec As Date
Dim różnica As Date

start = Now
Debug.Print "Test1"

ilość = 0
licznik = 0

Set rcs = CurrentDb.OpenRecordset("tbl2", dbOpenTable)

With rcs
'ilość
.MoveLast
ilość = .RecordCount: Debug.Print "ilość:" & ilość
.MoveFirst

'pętla
Do Until .EOF

licznik = licznik + 1
SysCmd acSysCmdSetStatus, licznik & "/" & ilość & " (" & Format(licznik / ilość, "Percent") & ")"

rekord = ""

For Each fld In .Fields
rekord = rekord & fld.Value & ";"
Next fld

rekord = Left(rekord, Len(rekord) - 1)
'Debug.Print rekord

.MoveNext
Loop

.Close

End With

Set rcs = Nothing

SysCmd acSysCmdClearStatus
koniec = Now
różnica = koniec - start

Debug.Print "Gotowe! Upłynęło: " & różnica
MsgBox "Gotowe! Upłynęło: " & różnica

End Sub

Sub test2()
Dim rcs As DAO.Recordset

Dim tablica() As Variant
Dim ilość As Long
Dim licznik As Long
Dim licznik2 As Long
Dim rekord As String

Dim start As Date
Dim koniec As Date
Dim różnica As Date

start = Now
'Debug.Print "Test2"

ilość = 0
licznik = 0

Set rcs = CurrentDb.OpenRecordset("tbl2", dbOpenTable)
With rcs
tablica = .GetRows
.Close
End With
Set rcs = Nothing

'ilość
ilość = UBound(tablica) + 1: Debug.Print "ilość:" & ilość

'pętla
For licznik = LBound(tablica, 1) To UBound(tablica, 1)

SysCmd acSysCmdSetStatus, licznik & "/" & ilość & " (" & Format(licznik / ilość, "Percent") & ")"

rekord = ""

For licznik2 = LBound(tablica, 2) To UBound(tablica, 2)
rekord = rekord & tablica(licznik, licznik2) & ";"
Next licznik2

rekord = Left(rekord, Len(rekord) - 1)
'Debug.Print rekord

Next licznik

SysCmd acSysCmdClearStatus
koniec = Now
różnica = koniec - start

Debug.Print "Gotowe! Upłynęło: " & różnica
MsgBox "Gotowe! Upłynęło: " & różnica
End Sub


W wyniku dostaję:

test1
ilość:13158
Gotowe! Upłynęło: 00:00:36

test2
ilość:90
Gotowe! Upłynęło: 00:00:00


Gdzie jest błąd w test2?Bartosz Borczyk edytował(a) ten post dnia 18.09.09 o godzinie 14:12

Następna dyskusja:

Problem z polskimi znakami ...




Wyślij zaproszenie do