Bästa list(iga)-medlemmar Visst kan man trixa med texter och ställa underfårgor, men det är bättre att påverka presentationen av datan. Hur har du valt att presentera datan? Hej Jenny, <b>Det fanns en VBA-snutt med där, och den har jag ju kvar (men har alltså inte kunskapen att använda den). Vore det till någon hjälp att få VBA-koden?</b> Hej Johan, och tack för ditt intresse för mitt "kod"-problem. Egentligen skulle jag skicka över hela den fiktiva databasen (med bara några poster inlagda, så den är inte alls stor, bara 216 kb). Annars stor F,T, H etc för olika församlingsnamn.Flera poster i samma Query-cell
Fick några goda råd av er före jul – tack!
Nu fortsätter jag med designen av databasen för schemaläggning av verksamheten i våra kyrkoförsamlingar.
Genom nedanstående SQL-satser får jag fram alla dagar och dess aktiviteter i de fyra olika kyrkorna, genom att varje dag lägger sig på en ny rad.
Problemet är bara att om två aktiviteter (dvs två olika poster i databasen) inträffar på en och samma dag i samma kyrka, så gör databasen en rad med dagens första aktivitet/post, och därefter en ny rad med dagens andra aktivitet/post. Detta gör schemat svåröverskådligt och utrymmeskrävande på papper.
Vad jag skulle vilja, är att alla aktiviteter/poster på och samma dag i samma kyrka samsas i en och samma cell, men med ett horisonellt streck, typ: ”--------” som avskiljare mellan aktiviterna/posterna.
Detta kanske inte går att åstadkomma i en Query, men det kanske finns andra öppningar.
Alla goda råd tas med tacksamhet emot!
Vänligen
Annika
<info>
SELECT [Dag-Q].[Dag], [Aneboda-Q].[Aneboda], [Lammhult-Q].[Lammhult], [Asa-Q].[Asa], [Berg-Q].[Berg]
FROM ((([Dag-Q] LEFT JOIN [Aneboda-Q] ON [Dag-Q].[Dag]=[Aneboda-Q].[Dag]) LEFT JOIN [Lammhult-Q] ON [Dag-Q].[Dag]=[Lammhult-Q].[Dag]) LEFT JOIN [Asa-Q] ON [Dag-Q].[Dag]=[Asa-Q].[Dag]) LEFT JOIN [Berg-Q] ON [Dag-Q].[Dag]=[Berg-Q].[Dag];
</info>
De olika kyrkorna (Aneboda-Q etc) består av följande SQL:
<info>
SELECT [Gudstjänst-Q].[Datum] & " " & [Gudstjänst-Q].[Veckodag] & Chr(13) & Chr(10) & [Gudstjänst-Q].[Dagens namn] & Chr(13) & Chr(10) & [Gudstjänst-Q].[Dagens ämne] AS Dag, Format([Gudstjänst-Q].[Tid],"Short Time") & " " & [Gudstjänst-Q].[Platskortnamn] & " (" & [Gudstjänst-Q].[Gtjkod] & ") " & Särskilt_namn & " " & [Präst] & " " & [Gudstjänst-Q].[Övrig_officiant] & " " & [Gudstjänst-Q].[Musiker] & " " & [Gudstjänst-Q].[Vaktmästare] & " " & [Gudstjänst-Q].[Kyrkvärd] & Chr(13) & Chr(10) & [Gudstjänst-Q].[Musik&Kör] & " " & [Gudstjänst-Q].[Övrigt] AS Aneboda
FROM [Gudstjänst-Q]
WHERE ((([Gudstjänst-Q].Församlingskortnamn)="Anb"))
ORDER BY [Gudstjänst-Q].Datum, [Gudstjänst-Q].Tid;
</info>Sv: Flera poster i samma Query-cell
Använder du tabell i html/asp, formulär/rapporter i access, en grid eller nåt annat i visual basic eller nåt annat?Sv: Flera poster i samma Query-cell
hittills har jag använt fråga i Access, vilket alltså ger ett rutnätsschema.
Jag måste erkänna att jag för något halvår sedan ställde samma fråga i ACCESS-L, och fick några bra lösningar från den engelsktalade världen. Där gjordes ett rutnätsschema (faktiskt två st) i form av rapporter. Dessa har jag - utan framgång - försökt inplementera i min nuvarande situation (vilken är en annan den för ett halvår sedan). Det fanns en VBA-snutt med där, och den har jag ju kvar (men har alltså inte kunskapen att använda den). Vore det till någon hjälp att få VBA-koden?
Vänligen
AnnikaSv: Flera poster i samma Query-cell
Det vore intressant att se.
/JohanSv: Flera poster i samma Query-cell
Tack så här långt, och här kommer VBA-koden
Vänligen
Annika
--------------------------------
Option Compare Database
Option Explicit
Dim mfNewDay As Boolean
Dim mstrPreviousDate As String
Dim mstrF As String
Dim mstrT As String
Dim mstrH As String
Dim mstrM As String
Dim mstrR As String
Dim mstrV As String
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Const conDashes As String = " - - - - - - - -"
Dim dtmWork As Date
' We never print this section, it is just used to build the values that get
' printed in the Group footer for each Date
Me.PrintSection = False
Me.MoveLayout = False
mfNewDay = (Me!txtDateBound <> mstrPreviousDate)
If mfNewDay Then
' Start building the entry for this day but don't print anything yet
' Store the current values as the first entries for the new day
' (Clearing any contents from earlier days)
mstrF = Me!txtFinjaBound
mstrT = Me!txtTyringeBound
mstrH = Me!txtHorjaBound
mstrM = Me!txtMatterodBound
mstrR = Me!txtRokeBound
mstrV = Me!txtVastraTorupBound
Else
' Append this record's entries to any already saved
If Len(mstrF) > 0 And Len(Me!txtFinjaBound) > 0 Then
mstrF = mstrF & vbCrLf & conDashes & vbCrLf
End If
mstrF = mstrF & Me!txtFinjaBound
If Len(mstrT) > 0 And Len(Me!txtTyringeBound) > 0 Then
mstrT = mstrT + vbCrLf + conDashes + vbCrLf
End If
mstrT = mstrT & Me!txtTyringeBound
If Len(mstrH) > 0 And Len(Me!txtHorjaBound) > 0 Then
mstrH = mstrH + vbCrLf + conDashes + vbCrLf
End If
mstrH = mstrH & Me!txtHorjaBound
If Len(mstrM) > 0 And Len(Me!txtMatterodBound) > 0 Then
mstrM = mstrM + vbCrLf + conDashes + vbCrLf
End If
mstrM = mstrM & Me!txtMatterodBound
If Len(mstrR) > 0 And Len(Me!txtRokeBound) > 0 Then
mstrR = mstrR + vbCrLf + conDashes + vbCrLf
End If
mstrR = mstrR & Me!txtRokeBound
If Len(mstrV) > 0 And Len(Me!txtVastraTorupBound) > 0 Then
mstrV = mstrV + vbCrLf + conDashes + vbCrLf
End If
mstrV = mstrV & Me!txtVastraTorupBound
End If
mstrPreviousDate = Me!txtDateBound
End Sub
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Call DrawFullDynamicGrid(Me.Section(acDetail))
End Sub
Private Sub GroupFooter0_Format(Cancel As Integer, FormatCount As Integer)
Static sstrLastDate As String
Dim fDateMissing As Boolean
Dim dtmWork As Date
fDateMissing = False
If sstrLastDate <> "" Then
dtmWork = CDate(sstrLastDate) + 1
If dtmWork < Me!txtDateBound Then
fDateMissing = True
End If
End If
If fDateMissing Then
' Insert an empty row in the report for the missing date
sstrLastDate = Format$(dtmWork, "yyyy-mm-dd")
Me!txtDate = sstrLastDate & vbCrLf & Format$(dtmWork, "dddd")
Me!txtFinja = ""
Me!txtTyringe = ""
Me!txtHorja = ""
Me!txtMatterod = ""
Me!txtRoke = ""
Me!txtVastraTorup = ""
' Don't move to the next record in the report's RecordSource because we are
' printing an empty row and haven't handled the details in the current record yet
' This event will continue to fire until we allow the report to move to the next record
Me.NextRecord = False
Else
' Assign the accumulated values to the controls and print
Me!txtDate = Me!txtDateBound & vbCrLf & Format$(CDate(Me!txtDateBound), "dddd")
sstrLastDate = Me!txtDateBound
Me!txtFinja = mstrF
Me!txtTyringe = mstrT
Me!txtHorja = mstrH
Me!txtMatterod = mstrM
Me!txtRoke = mstrR
Me!txtVastraTorup = mstrV
Me.NextRecord = True
End If
End Sub
Private Sub GroupFooter0_Print(Cancel As Integer, PrintCount As Integer)
Call DrawFullDynamicGrid(Me.Section(acGroupLevel1Footer))
End Sub
Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer)
' Reset module-scope variables in case there is more than one formatting pass
mstrPreviousDate = ""
mstrF = ""
mstrT = ""
mstrH = ""
mstrM = ""
mstrR = ""
mstrV = ""
End Sub