Avatar billede target Nybegynder
05. januar 2004 - 14:18 Der er 17 kommentarer og
1 løsning

VBA Access oprette tekstboks i rapport fra kildekoden

Det jeg søger her er et eksempel på et stykke kildekode, der opretter en tekstboks i min rapport.
Udover at oprette tekstboksen, skal man kunne definere hvor den skal oprettes i rapporten, hvad indholdet skal være, hvilken skrifttype der skal anvendes, skriftstørrelse samt skriftfarve.
Avatar billede thesurfer Nybegynder
05. januar 2004 - 14:38 #1
Jeg har ikke prøvet VBA før, men sådan gøres det i VB 6:

Private Sub Command1_Click()
Dim test
Set test = Me.Controls.Add("VB.TextBox", "navn")
test.Left = 70 ' placering left
test.Top = 70 ' placering top
test.Height = 25 ' højden
test.Width = 2000 ' bredden

test.Text = "hello world :)" ' indholdet
test.Font = "Arial" ' skriftype
test.FontSize = "12" ' skriftstørrelse
test.ForeColor = RGB(255, 0, 0) 'tekstens farven i RGB format

test.Visible = True ' vis text feltet
End Sub
Avatar billede martin_moth Mester
05. januar 2004 - 14:40 #2
Et gæt:

Dim myTextbox As TextBox
myTextbox.Top = 100
myTextbox.Left = 100
myTextbox.Font = "Arial"
...osv
?
Avatar billede martin_moth Mester
05. januar 2004 - 14:40 #3
Gå efter thesurfers svar :o)
Avatar billede target Nybegynder
05. januar 2004 - 16:38 #4
Jeg synes ikke rigtig jeg kan få nogen af dem til at virke. :/
Avatar billede thesurfer Nybegynder
05. januar 2004 - 16:40 #5
Som jeg skrev i mit indlæg: "Jeg har ikke prøvet VBA før, men sådan gøres det i VB 6" :)
Avatar billede target Nybegynder
05. januar 2004 - 16:41 #6
:)
Du har sikkert også fat i noget af det rigtige, men har selv siddet og roddet en del med ca. det samme ting, men kan bare ikke få det til at virke.
Avatar billede thesurfer Nybegynder
05. januar 2004 - 16:44 #7
Hvor indsættet man vba kode henne (så kan jeg selv teste)? Jeg har Office 2000.. hvad skal man bruge?
Jeg kan regne ud at man skal bruge Access :)
Avatar billede target Nybegynder
05. januar 2004 - 16:45 #8
:)
Du går ind og opretter en ny rapport og åbner den i designvisning. Og så går du op i Vis og vælger Programkode.
Avatar billede thesurfer Nybegynder
05. januar 2004 - 17:06 #9
Jeg kan ikke lige få fat på formen/rapporten.. men der er noget der f.eks. hedder:

X.Controls.Application.CreateControl(X, acTextBox, et-eller-andet-mystisk)

X = formen/rapportens navn
et-eller-andet-mystisk = et eller andet mystisk :)
Avatar billede target Nybegynder
05. januar 2004 - 17:08 #10
application.CreateReportControl("Test" & test, acTextBox, acDetail,,) sådan noget i den retning har jeg haft kig på. Men ligesom dig, så kan jeg ikke få fat i rapporten.
Avatar billede thesurfer Nybegynder
05. januar 2004 - 17:11 #11
Rapporternes navne:

For Each rprt In CurrentProject.AllReports
  MsgBox rprt.Name
Next
Avatar billede target Nybegynder
05. januar 2004 - 17:13 #12
??
Ved ikke lige helt hvad du mener med den?
Avatar billede thesurfer Nybegynder
05. januar 2004 - 17:18 #13
Den finder navnene på de rapporter du har i dit projekt.. men den vil ha' en "formular"?:

test = Application.CreateControl("Rapport1", acTextBox, acDetail)

Jeg har ingen anelse om, hvad jeg har rodet mig selv ud i :)
Avatar billede target Nybegynder
05. januar 2004 - 17:20 #14
Det giver heller ingen logik inde i mit hoved. Er selv helt ny til VBA.
Men der plejer at være nogen kloge hoveder herinde der har forstand på VBA. :)
Avatar billede somaliomar Praktikant
05. januar 2004 - 19:52 #15
Prøv det her:

1. Opret et nyt modul, åbn modulet og indsæt flg. kode i modulet:

Public Sub CreateTextBox(strReportName As String)
    Dim txt As TextBox
 
    ' Åbner rapporten i Design View da man
    ' ellers ikke kan oprette tekstboksen
    DoCmd.OpenReport strReportName, acViewDesign
 
    ' Opretter tekstboksen
    Set txt = CreateReportControl(strReportName, _
        acTextBox, acDetail, , , 1, 1)
 
    ' Formater tekstboksen
    txt.Name = "MyTextBoxName4"
    txt.ControlSource = "=Date()"
   
    ' Skrifttype
    txt.FontName = "Verdana"
    txt.FontSize = "10"
    txt.FontBold = True
    txt.ForeColor = RGB(244, 34, 345)
   
    ' Placering
    txt.Left = 400
    txt.Top = 600
 
    ' Lukker rapporten igen
    DoCmd.Close acReport, strReportName, acSaveYes
 
    ' Åbner rapporten i Preview
    DoCmd.OpenReport strReportName, acViewPreview
End Sub

2. Gem det og vend tilbage til din database.
3. Opret en formular i Design View og derefter opretter du en knap på formularen.
4. Højreklik på knappen, klik på Build Event og vælg Code Builder
5. Skriv  flg:

Private Sub Command0_Click()
    CreateTextBox "Report1"
End Sub

6. Prøv at ændre lidt i koderne og leg med det.
Avatar billede target Nybegynder
05. januar 2004 - 20:17 #16
Dette virker. Men dette kræver at jeg skal ind og åbne en formular, for at få oprettet en tekstboks i min rapport. Det er ikke en holdbar løsning, men da et skridt i den rigtige retning. Hvis en af jer kan komme frem til en metode, hvorpå jeg kan få oprettet tekstboksen i min rapport, blot ved at åbne min rapport, så er point'ene hjemme.
Avatar billede somaliomar Praktikant
06. januar 2004 - 06:57 #17
Jeg tror ikke, at det kan lade sig gøre for kode i selve rapporten opretter en tekstboks mens rapporten er åben.
Avatar billede target Nybegynder
16. februar 2004 - 22:09 #18
Lukker her
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