title image


Smiley Requery auf listbox im Formular des Codeprojects
Hallo zusammen,



ich kämpfe immer noch mit meiner requery auf ein Formular eines codeprojects:

ich setze von currentproject "mycurr.mdb" einen Verweis auf das Codeproject "mycode.mdb", dann öffne ich das gewünschte Formular aus dem codeproject "mycode.mdb", indem ich aus einem Formular in "mycurr.mdb" eine public prozedur im Codeproject aufrufe, die per docmd.Openform das gewünschte Formular öffnet. (klappt mit ausnahme des Requery!)



Beim Öffnen des Formulars wird eine temporäre Tabelle "FtmptblUAvon" mit Datensätzen aus einer anderen Tabelle gefüllt (klappt!).

Die Listbox im geöffneten Formular aus mycode.mdb hat als rowsource ein SQL statement ("SELECT FtmptblUAvon.lid_ua, FtmptblUAvon.id_ua_txt FROM FtmptblUAvon ORDER BY FtmptblUAvon.lid_ua; "), anschließend me!mylistbox.requery.



Das Ganze funktioniert aber nur, wenn ich (nach vielen Irrungen und Wirrungen) eine 5-Sekunden Pause einschalte. Das kann es ja wohl nicht sein :-(((. Was kann ich tun?

Ich arbeite bereits mit dem Executecomplete-Ereignis. Gibt es so eine Art RequeryComplete?



Es klappt auch innerhalb der MDB, also ohne Aufruf von außen, wenn ich die connection auf Currentproject.connection setze.



Ich gebe zu, daß ich mit den Connections und ADO noch nicht richtig fit bin, vielleicht hilft mir auch ein Verweis auf eine ausführliche Seite zum Lesen (KB und OLH habe ich soweit gelesen, aber bin auf nichts gestoßen, was ich als Lösung meines Problems erkannt hätte, aber das mag an mir liegen.)



Kann mir jemand Tipps geben. Ich möchte diese Pause durch vernünftigen Code ersetzen. Wer Lust hat: unten steht der betreffende Code, das ist erst mal eine abgespeckte Minimalversion, die mit Pause funktioniert und ohne nicht.



Bin für alle Tipps dankbar, Gabriele







Option Compare Database

Option Explicit



Private tmpsql As String

Private recaff As Long

Private midfb As String



Private WithEvents connfront As ADODB.Connection





Private Sub Form_Load()



On Error GoTo Error_Form_Load



Set connfront = New ADODB.Connection

connfront.Open ("Provider = Microsoft.Jet.OLEDB.4.0; DATA Source = C:\G\Lisy\Eigenentwicklung\mycode.mdb")



midfb = "meinfb"



connfront.Execute "Delete from FtmptblUAvon"

connfront.Execute "Delete from FtmptblUAsel"



tmpsql = "INSERT INTO FtmptblUAvon (lid_ua, id_ua_txt) " & _

"SELECT FtblUA.lid_ua, FtblUA.id_ua_txt FROM FtblUA " & _

"WHERE (((FtblUA.flid_forstbetrieb)='" & midfb & "')); "

connfront.Execute tmpsql, recaff



FMachMalPause (5)

Me.lstUAvon.Requery

Me!lstUAvon.Selected(0) = True

Me.Repaint



Exit_Form_Load:

Set connfront = Nothing

Exit Sub



Error_Form_Load:

If Err.Number = -2147217865 Then Resume Next

MsgBox Err.Number & Err.Description

Resume Exit_Form_Load



End Sub



Private Sub connFront_executeComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)



If (adStatus = adStatusOK) Then

MsgBox "ich habe fertig: " & RecordsAffected

End If

End Sub



Public Sub FMachMalPause(Pausenlaenge As Long)



Dim Start, ende

DoCmd.Beep



Start = Timer ' Anfangszeit setzen.

Do While Timer < Start + Pausenlaenge

'DoEvents ' Steuerung an andere Prozesse

' abgeben.

Loop

ende = Timer

DoCmd.Beep

End Sub



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: