Avatar billede perstig Nybegynder
18. juli 2002 - 15:46 Der er 10 kommentarer og
1 løsning

databaseudtræk via Calendar(DateTimeOicker)

Jeg har lavet et lille reminder/kalender program, hvor jeg via en DataControl(Data1) vælger en bestemt dato i en database(Access).
Til den valgte dato vises de tilhørende begivenheder i et DataGrid.

Hvorledes får jeg skiftet DataConrtollen(Data1) ud med en kalender (MS Calendar Control 8.0), således at et klik på en dato vil vise de tilhørende begivenheder i DataGrid'en
Jeg har prøvet at sætte en Calendar Control ind (Via en ADODC control) og kan også godt få vist den valgt dato i textbox, men hvorledes får jeg trukket den samme dato + begivenheder ud af databasen.

Jeg benytter bla. flg.:

Dato1 = Calendar.Value (henter calendar valget ind i Dato1 variablen)
    conn.Open "DSN=DB_????;uid=??;pwd=??;database=DB_???"

Set cmd1.ActiveConnection = conn
cmd1.CommandText = "SELECT Dato FROM T_Dato WHERE Dato " & Dato1

rs1.CursorLocation = adUseClient
rs1.Open cmd1, , adOpenStatic, adLockBatchOptimistic

Jeg får ikke noget "ind" i rs1(recordset)!!
Og hvis jeg fik noget ind i rs1, hvorledes kan jeg så få det ud igen?
Jeg har lidt erfarring med DatabaseConnections og Recordsets fra ASP(VBScript).

Skulle det ikke være nogle samme fremgangsmåde??

Jeg har tumlet med diverse bøger, bla. "VB6.0 Step By Step" og "VB6.0 Programmer's Guide" samt Msdn Library VS.6.0, for at prøve at finde svar men uden held indtil nu.

Håber at det er en eller anden som kan hjælpe.
Avatar billede kjeld_klit Nybegynder
18. juli 2002 - 16:04 #1
Hvis du kan "fange" datoen i en textbox kan du også bruge den til at søge i databasen:

    Data1.Recordset.MoveFirst
    Do Until Data1.Recordset.EOF = True
        If Data1.Recordset("Dato") = Text1.Txt Then
            'Her skriver du det den skal efter at have fundet dato i databasen
            Exit Do
        End If
        Data1.Recordset.MoveNext
    Loop
Avatar billede perstig Nybegynder
18. juli 2002 - 17:19 #2
Hej Kjeld

Når jeg prøver ovenstående, får jeg flg. fejlmedl.:

"Object variable or with blok variable not set"

??????????
Avatar billede kjeld_klit Nybegynder
18. juli 2002 - 17:27 #3
Det er fordi den er ukend for prg. Når du har fejlen så klik på debug og linien bliver markeret i koden. Hvilken linie?
Avatar billede perstig Nybegynder
19. juli 2002 - 12:09 #4
Det er linien:

>>Do Until Data1.Recordset.EOF = True<<

som bliver markeret
Avatar billede kjeld_klit Nybegynder
19. juli 2002 - 12:15 #5
Har du en Data1 kontrol på din form?
Avatar billede kjeld_klit Nybegynder
19. juli 2002 - 12:18 #6
...hvor DatabaseName og RecordSource er forbundet med din DB?
Avatar billede perstig Nybegynder
19. juli 2002 - 15:04 #7
Ja, jeg har bådet prøvet med og uden, samme resultat!!!

Her får du koden:

Private Sub Calendar1_Click()
   
    Dim conn As New ADODB.Connection
    Dim cmd1 As New ADODB.Command
    Dim cmd2 As New ADODB.Command
    Dim rs1 As New ADODB.Recordset
    Dim rs2 As New ADODB.Recordset
    Dim tex1
    tex1 = Calendar1.Value
   
    conn.Open "DSN=DB_???;uid=??;pwd=??;database=DB_???"

    Set cmd1.ActiveConnection = conn
    cmd1.CommandText = "SELECT Dato_ID FROM T_Dato WHERE Dato = 10-07-2002"

    rs1.CursorLocation = adUseClient
    rs1.Open cmd1, , adOpenStatic, adLockBatchOptimistic
   
    '.Recordset.MoveFirst
    Do Until Data1.Recordset.EOF = True
        If Data1.Recordset("Dato") = Text1.Text Then
            Label1.Caption = Data1.Recordset("Dato")
            'Her skriver du det den skal efter at have fundet dato i databasen
            Exit Do
        End If
        Data1.Recordset.MoveNext
    Loop

End Sub
Avatar billede kjeld_klit Nybegynder
19. juli 2002 - 15:37 #8
Nu har jeg pludselig et problem på min egen maskine - jeg kan ikke få en CalendarComp. på min form!!! Det må jeg have løst.
Men umiddelbart har du en apostrof i linien .Recordset.MoveFirst - den skal ikke være der.
Avatar billede perstig Nybegynder
19. juli 2002 - 17:04 #9
Det er en "leftover" fra en tidligere udkomentering(test).
Mit problem er stadigt at jeg ikke kan finde ud af hvorledes jeg får data ud rs1(recordset)som gerne skulle indeholde resultatet at sql sætningen.
Kan du evt. vise mig det med et eksempel.
Hvis jeg skifter Data1(fra dit eks) ud med rs1, som jeg mener ville være logisk som får jeg også en fejlmedl. om at "Method or data member not found"
Efter mig logik så henter jeg data ind i rs1 vha. sql(cmd1) sætningen og connectionstring(conn) og derefter skulle jeg vel bare kunne "tage" de data ud af rs1 som jeg skal bruge ??? eller hva' ????
Avatar billede perstig Nybegynder
19. juli 2002 - 17:07 #10
Lige en tilføjelse

Jeg er ved at være overbevist om at det må være min connection og/eller sql der ikke rigtigt virker.
Avatar billede kjeld_klit Nybegynder
19. juli 2002 - 17:16 #11
Jeg er ikke go' til SQL men jeg mener det skal være...
Select ... WHERE (((Tabelnavn.Dato) Like "10-07-2002"))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester