Gå til innhold

sykkelknut1

Medlemmer
  • Innlegg

    13
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av sykkelknut1

  1. Hei !

    Jeg har en VB applikasjon som er koblet mot en Access-database.

    I den forbindelse kjører jeg mange sql-spørringer.

    I databasen har jeg flere dato-felt som ligger definert som kort dato - format,

    dvs. f.eks. 31.05.2005

     

    Jeg forsøker å kjøre sql-query som følger :

     

    SELECT * FROM tabell1 WHERE tabell1.dato = #" & inndato & "#"

     

    Siden jeg kjører Norwegian som regional settings på min datamaskin

    får jeg ikke kjørt spørringen. Definerer jeg regional settings til Engelsk

    fungerer alt som det skal, da blir nemlig dato-felt i Access f.eks. 31/05/2005.

    Hvordan skal jeg løse dette ?. Ønsker jo ha ha norsk reginal setting

    på min pc. Gjør jeg om dato-feltene i tabellen om til Tekst-felt fungerer det

    også utmerket, men da må jeg bytte ut # med ' i spørringen min.

    Ulempen da er at jeg ikke får brukt sorteringsmulighet osv. på disse dato-feltene

    slik som man får gjort hvis dem er definert som dato-felt.

  2. ja det er mulig.

    Veit ikkje heilt å forklare da utan access foran meg, men det er gangske enkelt.

    Først lag ein tabell med ønska verdiar. 10kr, 20kr eller noko sånt

    Så går du inn i skjema og lagar ein ny tom kominasjonsbox, og velg hent data frå tabell i "wizarden". Nå får du opp alle tabellene og du finner tabellen med verdiene dine.

     

    Nå skal det fungere. :)

    Vist du ikkje skjønte da kan eg kanskje installere access og se på da seinare...

    Hvordan får man frem denne "Wizarden" du snakker om da ?

    Er det et av egenskap-feltene for comboboksen ?

  3. Ønsker følgende funksjonalitet i en form :

     

    Brukeren skal velge "verdier" i to forskjellige listefelt (combobokser).

    Utifra hva brukeren har valgt i disse to feltene skal det kjøres en spørring

    i en access database for å finne alle postene som matcher dette utvalget.

     

    Hvordan gjøres dette ?.

     

    Ønsker gjerne at disse postene skal komme frem en og en, dvs. at brukeren

    kan bla seg fra post til post og eventuelt redigere, slette osv.

  4. Nedtreksmenyer er i bruk svært lik tekstbokser, og jeg tror du lett vil greie implimere dem i programmet. Du legger ganske lett inn en, setter Style til 2, og så legge data inn ved å skrive tekst i List. Etter du har gjort dette, skal Text egenskapen gi deg den markerte teksten.

     

    Når det gjelder kalender er jeg sikker på du klarer å finne fram noe. Det skal være en inkludert kalender OCX (ActiveX kontrol, legges til i Component (CTRL+T)) i Windows, men en google søk på calendar vb skulle vel også hjelpe endel.

     

    Er det noe mer du lurer på, må du bare spørre.

    Hvordan lager man kobling til en ny form fra en meny ?

  5. Jeg går videre med mine foreløpige små kunnskaper i VB.

    Er det noen som kan hjelpe meg med de problemstillinger jeg omtaler i

    koden nedenfor :

     

     

     

    'Dette skal bli et vedlikeholdsprogram som verkstedleder i vedlikeholdsavdelingen

    'skal bruke. I korte trekk skal systemet kunne registrere en ny vedlikeholdsjobb.

    'Dette skal gjøres via Fil-menyen og Ny Jobb (se under mnuNyJobb).

     

    'Deretter når jobben er utført skal verkstedleder gå inn på Rediger-menyen og Jobb.

    'Han skal så fylle inn resterende felter (Bemerkning, Reparatør, Ferdig dato og Intervall dato).

     

    'Skal også knytte opp noen rapporter for historikk (kunne se på tidligere utførte vedlikeholdsjobber,

    'fremtidige intervalljobber osv.'

    'Hvordan disse rapportene skal være er ikke tenkt ut ennå.

    'Tenker meg også en varslingsrutine på intervalljobbene, dvs. at verkstedleder kan automatisk få

    'en mail eller annen form for varsling når dato for intervalljobben er nådd.

     

     

     

    Dim tblJobber As Recordset

    Dim DB As Database

     

    Private Sub Form_Load()

    Set DB = OpenDatabase("c:\VB\Verksted.mdb")

    Set tblJobber = DB.OpenRecordset("Jobber")

    End Sub

     

    Private Sub mnuNyJobb_Click() 'Åpner formen for registrering av ny vedlikeholdsjobb

     

    MsgBox ("Skal åpne en ny form der ny vedlikeholdsjobb skal registreres (se i kode hvilke felt) : ")

     

    ' Følgende felt skal det registreres data i :

    ' - Dato (gis automatisk dagens dato)

    ' - Tid (gis automatisk klokkeslett)

    ' - Objekt (skal tastes inn)

    ' - Objektsted (skal tastes inn)

    ' - Innmeldt av (skal tastes inn)

    ' - Prioritering (fint med nedtrekksmeny og velge mellom (1. Høy, 2.Middels, 3.Lav)

    ' - Feilens art (fint med nedtrekksmeny og velge mellom (1.Mekanisk, 2.Elektrisk, 3. Annet)

    ' - Beskrivelse (en stort tekstboks/notat felt ---> Bør kunne inneholde 2-3 setninger med tekst.

    End Sub

     

     

    Private Sub mnuFilAvslutt_Click() 'Avslutter programmet

    End

    End Sub

     

     

    Private Sub mnuRedigerJobb_Click() 'Åpner formen for å redigere en vedlikeholdsjobb

    MsgBox ("Skal åpne en form der vedlikeholdsjobber skal redigeres (se i kode hvilke felt) : ")

     

    'Ønsket funksjonalitet er :

    ' Nedtrekksmeny i feltet for Objekt. Når man så velger et Objekt må det kjøres en

    ' spørring i databasen som trekker ut bare de jobbene som berører det valgte objektet.

    ' Det kan være flere poster. Videre er det ønskelig at man skal kunne ha nedtrekksmeny

    ' i feltet for Objektsted. De valgte objekt postene kan ha forskjellige Objekt steder

    ' slik at når man velge Objektsted også skal man sitte igjen men bare de postene som

    ' gjelder det man har valgt som Objekt og Objektsted. Disse postene skal man så via knapper

    ' kunne bla seg frem og tilbake i, kunne redigere, slette og lagre.

     

    'I tillegg til feltene som er nevnt over (ny vedlikeholdsjobb)

    'skal følgende felter kunne legges data inn i :

    ' - Bemerkning (tilsvarende felt omtrent som feltet Beskrivelse (se ny vedlikeholdsjobb)

    ' - Reparatør (navnet på den som har utført reparasjonen

    ' - Ferdig dato (helst tilgang på en kalender (klikke på et lite ikon og få opp en kalender

    ' hvor man klikker på ønsket valg.

    ' - Intervall (samme som ferdig dato). Dette feltet skal brukes i de tilfeller der det er en jobb

    ' som skal gjentas f.eks om tre måneder. Man klikker seg da frem til datoen om tre måneder

    ' og denne dato legges inn i dette feltet.

     

    ' - Jeg har definert alle felt i databasen som tekst felt. Er det greit mht.

    ' til feltene for dato og klokkeslett, samt feltene for Beskrivelse og Bemerkning ?

     

    End Sub

  6. Du har ikke sakt hvilket navn skjemaet som inneholder all data heter, så jeg har kalt den for Personer.

     

    For å hente data fra en Access database kan du bruke flere metoder. Jeg bruker for det meste DAO, ettersom det er etter min mening det enklest å bruke med VB.

     

    Hvis databasen befinner seg i samme mappe som programmet, kan du bruke denne koden:

     

    Dim DAO As Object
    Dim tblPersoner As Object
    Dim DB As Object
    
    Set DAO = CreateObject("DAO.DBEngine.36")
    Set DB = DAO.OpenDatabase(App.Path & "\Test.mdb")
    Set tblPersoner = DB.OpenRecordset("Personer")
    
    Me.AutoRedraw = True
    
    Do Until tblPersoner.EOF
       Me.Print tblPersoner!Navn & ", " & tblPersoner!Alder & ", " & tblPersoner!Telefonnummer
    
       tblPersoner.MoveNext
    Loop
    

     

    Late-bound, som dette kalles, er også mye brukt i VB-script og ASP sider. Men ytelsen blir dårligere når du bruker denne framgangsmåten, så hvis du ønsker det kan du også referere filene direkte til prosjektet. Dette gjør du ved å velge Project -> References og så legge til Microsoft DAO 3.6 Object Library (hvis du ikke har denne kan du legge til en lavere versjon).

    Etter dette skulle følgende kode fungere:

     

    Dim tblPersoner As Recordset
    Dim DB As Database
    
    Set DB = OpenDatabase(App.Path & "\Test.mdb")
    Set tblPersoner = DB.OpenRecordset("Personer")
    
    Me.AutoRedraw = True
    
    Do Until tblPersoner.EOF
       Me.Print tblPersoner!Navn & ", " & tblPersoner!Alder & ", " & tblPersoner!Telefonnummer
    
       tblPersoner.MoveNext
    Loop
    

    Supert !

    Det fungerte med en gang.

     

    Har et par andre spørsmål som det hadde vært fint å få svar på :

     

    Ser i koden hvis man klikker på en "tom/blank" form at det kommer opp

    noe som heter Load_Form(). Hva brukes det til ?

     

    Hvordan lager jeg en form som har de feltene jeg har tabellen Personer.

    Feltene må vell knyttes opp mot hver sin Label eller tekstboks.

    Ønsker å kunne bla fra post til post og ha mulighet for å redigere eller slette.

  7. Jeg trenger hjelpe til koden for å knytte et form opp mot en database.

     

    Har et skjema der jeg vil vise postene jeg har liggende i databasen.

     

    Feltene i databasen består av Navn, Alder og Telefonnummer

     

    Klarer ikke dette med å opprette koblingen mellom VB og databasen.

     

    Fint om noen kan lage et enkelt eksempel til meg, helst med hele koden.

×
×
  • Opprett ny...