Avatar billede sbhansen Nybegynder
16. oktober 2001 - 20:47 Der er 3 kommentarer og
1 løsning

VBA til formattering af ja/nej felt - ændres til checkbox i tableview

Hvordan sættes layout til checkboxes i et ja/nej felt.
Mauelt ville jeg skifte Display control fra text box til check box - men via kode?

SQL til oprettelse af feltet: \"slettes\"
SQLDublet = \"CREATE TABLE \" & newDubletTable & \" (slettes bit, Info String, Respondent2ID Number, \" & tableNames & \" )\"

Det er således bit-feltet der skal ændres.

Jeg har forsøgt mig på forskellig vis med tabledef. En funktion til at oprette et felt med autonummer er eksempelvis:

    Set tdf = db.TableDefs(strTableName)
    Set fld = tdf.CreateField(strFieldName, dbLong)
    With fld
        .Attributes = .Attributes Or dbAutoIncrField

    End With
    With tdf.Fields
        .Append fld
        .Refresh
    End With

----
men at ændre dette til et skift af formatet for et felt...?

/Søren
Avatar billede nih Novice
17. oktober 2001 - 00:07 #1
Det var noget af et job.....

Sub changeFldFormat()
    Dim db As DAO.Database
    Dim tdf As TableDef
    Dim fld As Field
    Dim prp As Property
    Set db = CurrentDb
    Set tdf = db.TableDefs(\"tabNavn\")
    Set fld = tdf.Fields(\"fldNavn\")
    \' Hvis egenskaben \'format\' findes i forvejen
    On Error Resume Next
    \' opretter egenskaben format, hvis ikke den er oprettet
    Set prp = fld.CreateProperty(\"format\")
    \' angiv egenskaberne for \'format\'
    Set prp = fld.Properties(\"format\")
      prp.Type = 10
      prp.Value = \"yes/no\"
    \' gem ændringer i feltet
    fld.Properties.Append prp
    fld.Properties.Refresh

End Sub

Jeg er ikke helt klar over hvad du mener med checkboxe, men du kan selv finde værdierne for prp.type og value i vinduet fejlfinding.
Jeg sad og legede med dit problem, og ved at definere et fieldObjekt i kode der henviste til et ja/nej felt, kunne jeg se indstillingerne i vinduet fejlfinding....(+ en masse andre indstillinger)

Niels
Avatar billede nih Novice
17. oktober 2001 - 00:19 #2
Her er dine checkboxe !!!!

udskift et par linjer i ovnestående.

    Set prp = fld.CreateProperty(\"displaycontrol\")
    Set prp = fld.Properties(\"displaycontrol\")
      prp.Type = 3
      prp.Value = 106

det skulle giv dig checboxe.

Niels
Avatar billede sbhansen Nybegynder
17. oktober 2001 - 18:02 #3
Det lyder helt kanon, Nielse...
Ikke bare lyder det godt - det virker også! - og så fik jeg endda et godt råd til at tjekke VBA\'en bag ved de ting man ikke kan se, umiddelbart - stort!

Det er første gang jeg har en opgave, hvor jeg skal opbygge en database dynamisk, som samtidig skal følge bestemte designs... Det har givet en del hovedbrud.

Tak for hjælpen!
Avatar billede nih Novice
17. oktober 2001 - 21:46 #4
Jeg synes det er kanon at der stadig er nogen der anvender DAO istedet for ADO. Det var også et nyt \'hjørne\' for mig.

Niels
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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