Detta må vara ett nybörjarproblem i VB. Det är faktiskt lättare än man först tror. Det är bara att kalla på den sub-funktion som tar hand om aktuell knapps click-event i vanliga fall. Säg att du vill klicka på knappen CmdMinKnapp. Jaha, det var ju inte så svårt. Problemet är bara att formuläret visas inte förrän händelsen är klar. D.v.s. om knappen skall utlösa en UPDATE i en databas, så visas inte formuläret förrän uppdateringen är gjord. Hur fixar man det? detta är inte så snyggt... Precis så har jag gjort men det funkar inte. fattar jag fel om jag säger att du kan testa o lägga koden i Med form.paint kom jag ett steg närmare.... Bara en tanke.. Prova med en doEvents innan du kallar på ADO-uppdateringen. Detta var tydligen krångligare än jag trodde..... Ja, en aningen snyggare (och mindre resurskrävande) skulle väl eventuellt kunna vara att köra med en timer istället. fungerade det inte med show och sedan att anropa knappen i form_load? Jag skulle vilja se vad som sker när formuläert ladda sig. Kan du inte bifoga kod? UNGEFÄR SÅ HÄR SER DET UT JUST NU OCH FUNGERAR HJÄLPLIGT Testa den här koden Se där. Det finns en lösning på allt. Nu fick jag bort en massa bjäfs dessutom... Detta är vad jag brukar använda..."Fejka" knapptryckning
Hur gör man för att "automatisera" ett tryck på en kommandoknapp i ett formulär?
D.v.s. när formuläret har laddats så skall programmet klicka på en viss kommandoknapp av sig själv.
Har aldrig försökt detta förut men det måste väl gå?Sv: "Fejka" knapptryckning
<code>
Private Sub Form_Load()
CmdMinKnapp_Click
End Sub
Private Sub CmdMinKnapp_Click()
MsgBox "Du har klickat på CmdMinKnapp"
End Sub
</code>
MVH/KovskySv: "Fejka" knapptryckning
Sv: "Fejka" knapptryckning
gör istället
private sub minknapp_click()
call UpdateBlah
end sub
public sub UpdateBlah()
...ado kod goes här...
end sub
så anropar du "updateblah" istället för att anropa eventhanteraren för din knappSv: "Fejka" knapptryckning
Fornuläret visas inte förrän hela UPDATE-n är gjord.
Det måste finnas något sätt att aktivera formuläret innan ADO-händelserna utlöses även om man gjort en "autoclick" på "Uppdatera-knappen.Sv: "Fejka" knapptryckning
"form.activate" ?
eller "form.paint"
då ska väl formen hinna visas.Sv: "Fejka" knapptryckning
Nu visas det tomma formuläret men labels, textrutor och knappar kommer först efter att ADO-koden körts.Sv: "Fejka" knapptryckning
/KovskySv: "Fejka" knapptryckning
Jag gjorde en lösning med en loop som snurrar ett tag med DoEvents. Då funkar det hjälpligt, men det är ingen vacker lösning enligt min mening.
Den som har nåt bättre att komma med är välkommen..Sv: "Fejka" knapptryckning
Sv: "Fejka" knapptryckning
Sv: "Fejka" knapptryckning
Sv: "Fejka" knapptryckning
Private Sub cmdUpdate_Click()
For i = 1 To 100
DoEvents
Next
Uppdatera
End
End Sub
Private Sub Uppdatera()
Dim SearchString As String, SearchChar, MyPos
SearchChar = ";"
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
Lite kod för att läsa från databas till textfil
End Sub
Private Sub Form_Load()
Me.Show
End Sub
Private Sub Form_Paint()
Label1.Enabled = True
Text1.SetFocus
Text1.Text = "SAMLAR DATA"
cmdUpdate_Click
End SubSv: "Fejka" knapptryckning
<code>
Private Sub Form_Activate()
Me.Refresh
cmdUpdate_Click
End Sub
</code>
Ta bort fördröjningsslingan i knapptryckningen,
och koden i Form_Load och Form_PaintSv: "Fejka" knapptryckning
<code>
Private Sub Form_Activate()
Me.Refresh
Uppdatera
End
End Sub
Private Sub Uppdatera()
Dim SearchString As String, SearchChar, MyPos
SearchChar = ";"
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection
Lite kod för att läsa från databas till textfil
End Sub
</code>Sv: "Fejka" knapptryckning
<code>
Private Sub Form_Load()
Show ' Ge kommando att visa formen
DoEvents ' Vänta tills det är klart
Command1_Click ' "Klicka" på knappen
End Sub
Private Sub Command1_Click()
'...
End Sub
</code>
jo... en sak till... om du nu ända ska avsluta så fort du uppdaterat så KAN du ju använda en modul istället...