Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Använda VB för att formatera Accessrapport

Postades av 2001-04-20 13:22:00 - Monica Jonsson, i forum databaser, Tråden har 5 Kommentarer och lästs av 729 personer

Hej!
Jag har skrivit en VB modul som skall slå ihop output från en sql fråga till en sträng. Funktionen i VB modulen ska anropas från Rapporten m.h.a expression Builder. Vet bara inte riktigt hur jag ska göra anropet för att få tillrätt paramater...är inte helt säker på att jag tänkt rätt i min modulkod oxå. Tacksam för hjälp! Monica

Här är koden:

Function fCompetences(manyTable As String, _
OnePrimKey As String, _
fieldConcat As String, _
onePrimType As Integer, _
varIDvalue As Variant) As String




'Returnerar fält från Många-sidan av en en-till-många relation
'i semikolon separerat format.
'manyTable = många-sidan-tabellen
'OnePrimKey = Primärnyckeln på en-sidan-tabellen.
'fieldConcat = Fältet som ska konkateneras.
'onePrimType = primärnyckelns(på en-sidan tabellen) datatyp.
'varIDValue = värdet på primärnyckeln som ska vara i "where-satsen"

'Dim db As Database
Dim RS As Recordset
Dim varConcat As Variant
Dim strCriteria As String, stRSQL As String

varConcat = Null
Set db = CurrentDb
stRSQL = "Select [" & fieldConcat & "] From [" & manyTable & "]"
stRSQL = stRSQL & " Where "
stRSQL = stRSQL & "[" & OnePrimKey & "] = '" & varIDvalue & "'"

Set RS = db.OpenRecordset(stRSQL, dbOpenSnapshot)

With RS
If .RecordCount <> 0 Then
'Konkatenera
Do While Not RS.EOF
varConcat = varConcat & RS(fieldConcat) & ","
.MoveNext
Loop
End If
End With

'Trimma
fCompetences = Left(varConcat, Len(varConcat) - 1)

Exit_fCompetences:
Set RS = Nothing: Set db = Nothing
Exit Function
End Function


Svara

Sv: Använda VB för att formatera Accessrapport

Postades av 2001-04-21 12:55:00 - Andreas Hillqvist

Har optimerat funktionen lite genom att använda mig en variabel för fält objektet och öppnar recordsetet som dbOpenForwardOnly. Vilket kräver mindre resurer och går snabbare.

Sedan har jag också implementerat BuildCriteria för att skapa vilkoret i WHERE satsen. Vilken datatyp fältet har anger man med onePrimType.

Om fältet är en sträng använder använder man adText = 10. Om det är ett Långt Heltal använder man sig av adLong = 4.

Function fCompetences(manyTable As String, _
OnePrimKey As String, _
fieldConcat As String, _
onePrimType As Integer, _
varIDvalue As Variant) As String

'Returnerar fält från Många-sidan av en en-till-många relation
'i semikolon separerat format.
'manyTable = många-sidan-tabellen
'OnePrimKey = Primärnyckeln på en-sidan-tabellen.
'fieldConcat = Fältet som ska konkateneras.
'onePrimType = primärnyckelns(på en-sidan tabellen) datatyp.
'varIDValue = värdet på primärnyckeln som ska vara i "where-satsen"

Dim db As Database
Dim RS As Recordset
Dim strConcat As String
Dim strSQL As String
Dim fldField As Field

strSQL = "SELECT [" & fieldConcat & "]" & vbCrLf & _
"FROM [" & manyTable & "]" & vbCrLf & _
"WHERE " & BuildCriteria(OnePrimKey, onePrimType, varIDvalue)

Set db = CurrentDb
Set RS = db.OpenRecordset(strSQL, dbOpenForwardOnly)
Set fldField = RS(fieldConcat)

With RS
If .BOF And .EOF Then
fCompetences = Null
Else
'Konkatenera
Do Until .EOF
strConcat = strConcat & fldField & ","
.MoveNext
Loop

'Trimma
fCompetences = Left(strConcat, Len(strConcat) - 1)
End If
End With

Exit_fCompetences:
Set RS = Nothing
Set db = Nothing
Exit Function
End Function



Exempel på en kontrollkälla skulle kuna vara:

=fCompetences("Intressen";"Person";"Intresse";4;[PersonID])

"Intressen" - Tabellen Intressen
"Person" - Fält som anger person (Långt Heltal)
"Intresse" - Fält för intressen som skall koncratineras(Text)
4 - adLong används av BuildCriteria funktionen
[PersonID] - Primär nyckeln i huvudtabellen


Svara

Sv: Använda VB för att formatera Accessrapport

Postades av 2001-04-23 14:00:00 - Monica Jonsson

Hej Andreas!
Tack för hjälpen! Jag har ändrat min kod...har dock fortfarande problem att få till mitt anrop. Nu ser det ut så här (från Expression Builder, som är kopplat till ett textfält):
=fCompetences("Competence";"competenceID";"competence";4;[competenceID])
Det enda som skrivs ut i min rapport är #Name.
Vet du/någon vad som är fel?
Tacksam för snabb hjälp!
//Monica


Svara

Sv: Använda VB för att formatera Accessrapport

Postades av 2001-04-23 14:12:00 - Andreas Hillqvist

Testa med att skriva Public Function fCompetences och lägg den i en modul.
Läg till en textruta länka den till competenceID och döp om den till competenceID samt göm den genom att sätta visible=False.


Svara

Sv: Använda VB för att formatera Accessrapport

Postades av 2001-04-23 15:14:00 - Monica Jonsson

hmm...tyvärr får jag fortfarande #Name som utskrift i Rapporten...jag undrar om jag gör anropet från Expression Builder rätt??
//Monica


Svara

Sv: Använda VB för att formatera Accessrapport

Postades av 2001-04-23 15:14:00 - Monica Jonsson

hmm...tyvärr får jag fortfarande #Name som utskrift i Rapporten...jag undrar om jag gör anropet från Expression Builder rätt??
//Monica


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 705
27 958
271 751
997
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies