30. marts 2010 - 12:47Der er
8 kommentarer og 1 løsning
Rækker til kolonner
Jeg benytter en Access 2007 database som FrontEnd til nogle SharePoint lister. Det er en database over bestyrelsesmedlemmer, men jeg kan ikke få en liste ud som jeg kan bruge til en brevfletning.
Jeg har følgende tabeller:
Tabelnavn: Firma ID - Tal Firmanavn - Tekst CVRnr - Tal Land - Tekst
Tabelnavn: Contacts ID - Tal Navn - Tekst Adresse - Tekst Telefon - Tal Email - Tekst
Tabelnavn: Post ID - Tal Position - Tekst
Tabelnavn: bestyrelse ID - Tal Firma - Tal Medlem - Tal Post - Tal
Hvis jeg køre følgende forespørgsel på databasen: (Er lavet af Access)
SELECT firma.navn, firma.CVRnr, firma.Land, Contacts.Navn, Post.Positions FROM Post INNER JOIN (firma INNER JOIN (Contacts INNER JOIN bestyrelse ON Contacts.Id = bestyrelse.medlem) ON firma.Id = bestyrelse.firma) ON Post.Id = bestyrelse.post ORDER BY firma.navn, Post.Id;
Får jeg følgende output: firma.Navn CVRnr Land Contacts.Navn Positions Cykelfabriken 45741145 Danmark Jens Peter Formand Cykelfabriken 45741145 Danmark Lars Eriksen Næstformand Cykelfabriken 45741145 Danmark Lars Larsen Bestyrrelsesmedlem Cykelfabriken 45741145 Danmark Erik Jørgensen Bestyrrelsesmedlem Cykelfabriken 45741145 Danmark Lars Larsen Kasserer Motorfabriken 41474125 Danmark Lars Eriksen Formand Motorfabriken 41474125 Danmark Jens Peter Næstformand Motorfabriken 41474125 Danmark Lars Larsen Bestyrrelsesmedlem Motorfabriken 41474125 Danmark Hans Eriksen Bestyrrelsesmedlem
Det er som sådan fint nok, men ville gerne have en liste som ser sådan her ud:
Firma.Navn CVRnr Land Medlem1 Post1 Medlem2 Post2 Medlem3 Post3 Cykelfabriken 45741145 Danmark Jens Peter Formand Lars Eriksen Næstformand Lars Larsen Bestyrrelsesmedlem Motorfabriken 41474125 Danmark Lars Eriksen Formand Jens Peter Næstformand Lars Larsen Bestyrrelsesmedlem
På en eller anden måde skal den være dynamisk, så der kan være flere medlemmer end bare 3. Der vil også være flere af samme type. Altså flere med posten Bestyrrelsesmedlem.
Hvad vil det sige at benytte en Access 2007 database som FrontEnd til nogle SharePoint lister?
Er det noget manuelt klippe klistre eller har de færdige websider angang til en access databasen (som datakilde - adgang fra webserveren).
Man kan nemlig ikke lave det dynamisk udvidende kolonne antal i ren sql - man er nød til kode. Hvis der er database adgang fra serveren skal det i sidste end laves i asp eller .net og der er ikke så meget grund til at rode med DataSheet view fra en access frontend.
Rem VBA-kode indlagt i Excel Rem ========================
Dim recNr Dim firmaNavn As String, CVRnr As Long, land As String, navn As String, position As String Dim rækNr As Long, kolNr As Byte Public Sub opbygDataTilBrevfletning() Dim cvr As String cvr = "" kolNr = 4 rækNr = 2
tools.åbnforeSp1
With tools.foreSp1 For recNr = 1 To .RecordCount If cvr = "" Then cvr = .fields(1)
Cells(rækNr, 1) = .fields(0) 'firma Cells(rækNr, 2) = .fields(1) 'cvrNr Cells(rækNr, 3) = .fields(2) 'land Cells(rækNr, 4) = .fields(3) 'kontakt Cells(rækNr, 5) = .fields(4) 'position End If End If kolNr = kolNr + 2 .MoveNext Next recNr End With
tools.LukDb
ActiveSheet.Columns.AutoFit End Sub Rem ============= Rem Module Tools Rem ============= Dim Sti
Rem Database-def. Const dataBaseNavn = "STest.mdb" 'justeres
Public db, foreSp1 Public Sub findSti() Sti = ActiveWorkbook.Path If Right(xSti, 1) <> "\" Then Sti = Sti + "\" End If End Sub Rem Database - rutiner Rem ================== Public Sub LukDb() On Error Resume Next foreSp1.Close db.Close End Sub Public Sub åbnDatabase() findSti Set db = OpenDatabase(Sti + dataBaseNavn) End Sub Public Sub åbnforeSp1() åbnDatabase Set foreSp1 = db.OpenRecordset("Forespørgsel1") End Sub
Synes godt om
Ny brugerNybegynder
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.