Avatar billede a55830 Praktikant
10. januar 2004 - 01:28 Der er 51 kommentarer og
2 løsninger

sortere efter uge og lægge i excel men det virker ikke

jeg har fået en database af en og jeg har tilføjet et felt hvor jeg kan skrive ugenummer men den vil ikke sortere efter det og lægge de i et excel ark

her er koden:

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, Rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Uge As Object, u As String, ux As String, Tek As String, xls As New Excel.Application

On Error GoTo Errorhandler
'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
DoCmd.SetWarnings False
'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
DoCmd.OpenQuery "tilføjtemp"
'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel
'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel.
Me.Refresh
'Næste sætning definerer hvilken tabel der skal levere data og åbner denne
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("Opgaver", dbOpenTable)
'Excel åbnes ved hjælp af funktionen "CreateObject"
Set Obvar = CreateObject("excel.application")
xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
'Gør Excel synlig, Du kan også flytte denne linie længere ned...
'hvis eksporten skal være afsluttet når Excel bliver synlig
Obvar.Visible = True
'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
Set wkb = Obvar.Workbooks.Add
'Der sættes overskrifter på Excel-arket
wkb.Worksheets("Ark1").Cells(1, 1).Value = "Felt 2"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Felt 1"
'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
'Hvis der ekporteres tekst erstattes "Str$" med "Format"
u = Me.Tekst25
ux = Me.Tekst25 + 1
For i = 2 To Rst.RecordCount + 1
Set Uge = Rst.Fields![Uge]
If Uge = u Or ux Then
wkb.Worksheets("Ark1").Cells(i, 1).Value = Str$(Rst.Fields![TID])
wkb.Worksheets("Ark1").Cells(i, 2).Value = Str$(Rst.Fields![Uge])
Rst.MoveNext
Else
Rst.MoveNext
End If
Next
'Summen af felt2 udregnes
Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)"
wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 1).Value = Tek
'Linien tilpasser bredden af benyttede kolonner
wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
'Objektvariablen frigives
Set Obvar = Nothing
'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
DoCmd.OpenQuery "slettemp"
'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 94 Then
Resume Next
End If
End Sub
Avatar billede a55830 Praktikant
10. januar 2004 - 01:29 #1
lige en tilføjelse

den lægger alle poster i excel den sotere ikke noget

Thomas

db er fra mugs ( tak for den hjælp )
Avatar billede eagleeye Praktikant
10. januar 2004 - 01:34 #2
Prøv at rette denne linje:

Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("Opgaver", dbOpenTable)


Til denne, det må være kolonnne uge den skal sortere efter?:

Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("select * Opgaver order by uge", dbOpenTable)
Avatar billede mugs Novice
10. januar 2004 - 08:14 #3
Har sendt en ny fil der sender sorterede data til Excel ved DoCmd.Transfer Spreadsheet. Denne måde er ikke så funktionel som den spørgeren allerede har fået. Men det er jo et spørgsmål om, i hvilken forbindelse det skal bruges.

Hvis ovennævnte kode ikke sorterer, kan der i stedet for eksport af en tabel, blot eksporteres en forespørgsel, der er sorteret efter uge.

Prøv også at erstatte fejlhåndteringen med denne:

MsgBox Err.number & err.describtion

Det letter en evt. fejlsøgning.
Avatar billede a55830 Praktikant
10. januar 2004 - 10:21 #4
eagleeye > når jeg bruger denne linie vil den ikke eksportere
Avatar billede a55830 Praktikant
10. januar 2004 - 10:27 #5
mugs > det du sendte kan jeg ikke bruge
jeg skla selv bestemme hvad den skriver og hvor den skriver det

men ellers tak det ville være sejt hvis i kunne få det gamle til at virke

Thomas
Avatar billede terry Ekspert
10. januar 2004 - 10:55 #6
Without looking at this in detail, a solution would be to make a query whci sorts after week. Then instead of this line
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("Opgaver", dbOpenTable)
you would use something like this
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("qryOpgaverSorted", dbOpenQuery)
Avatar billede terry Ekspert
10. januar 2004 - 10:59 #7
dont use dbOpenQuery but dbOpenTable
Avatar billede terry Ekspert
10. januar 2004 - 11:00 #8
or dbOpenForwardOnly
Avatar billede terry Ekspert
10. januar 2004 - 11:12 #9
You should also be able to use

Set Rst = Currentdb.OpenRecordset ("select * Opgaver order by uge", dbOpenDynaset, dbReadOnly)
Avatar billede terry Ekspert
10. januar 2004 - 11:21 #10
Set Rst = Currentdb.OpenRecordset ("select * FROM Opgaver order by uge", dbOpenDynaset, dbReadOnly)
Avatar billede a55830 Praktikant
10. januar 2004 - 12:25 #11
jeg kan ikke få det til at virke terry den skriver kun en linie og det hænger ikke sammen da det ikke er den uge jeg har valgt

jeg skrev 49 og den gav mig uge 51 og uge 1.....

kan jeg bruge en forespørgsel til at få det sorteret ?????
Avatar billede terry Ekspert
10. januar 2004 - 12:30 #12
I can take a look if you like?
NOSPAMeksperten@santhell.dkNOPAM

remove NOSPAM
Avatar billede terry Ekspert
10. januar 2004 - 12:36 #13
what I dont understand is the original question was how to sort after week number NOT being able to select which week you want to see. If You choose a week (49) then what is the point in sorting afetr this when ALL records will be the same week?
Avatar billede terry Ekspert
10. januar 2004 - 12:37 #14
We need to know what you want an at the moment I am unsure!
Avatar billede a55830 Praktikant
10. januar 2004 - 14:12 #15
ok jeg ville gerne have lov til at skrive i et text felt uge XX og der efter klikke på en komandokanp og så exportere den , den uge ud i excel det kan dreje sig om 20 linier eller 5 hovedsagen er at det stykke kode jeg har lagt med kan exportere alle linier i databasen. hvis det kunne lade sig gøre ville jeg gerne have hjælp til at skrive det om så jeg kan bruge et textfelt til at styre hvilken uge der skal exporteres
Avatar billede terry Ekspert
10. januar 2004 - 14:18 #16
10/01-2004 12:30:33
Avatar billede a55830 Praktikant
10. januar 2004 - 14:19 #17
jeg har selv prøvet men den ser ikke det jeg har skrevet

det jeg he lagt ind er:
u = Me.tekst25
ux = Me.tekst25 + 1
Set Uge = Rst.Fields![Uge]
If Uge = u Or ux Then
Else
End if
Avatar billede terry Ekspert
10. januar 2004 - 14:21 #18
You can also add a field on your form where you can write the week number, then use

Dim sSQL

sSQL = "select * FROM Opgaver WHERE uge = " & Me.txtUge & " order by uge"

Set Rst = Currentdb.OpenRecordset (sSQL, dbOpenDynaset, dbReadOnly)
Avatar billede terry Ekspert
10. januar 2004 - 14:21 #19
the field is named txtUge  in the example
Avatar billede terry Ekspert
10. januar 2004 - 14:23 #20
a55830>If you can tell us what works from the examples given then we have an idea if what we are doing is correct!
Does this work for example?
Set Rst = Currentdb.OpenRecordset ("select * FROM Opgaver order by uge", dbOpenDynaset, dbReadOnly)

and i dont mean with week number!
Avatar billede a55830 Praktikant
10. januar 2004 - 20:23 #21
terry > i need the week number so it dont work sorry
Avatar billede terry Ekspert
10. januar 2004 - 20:31 #22
a55830>We are NOT getting anywhere with this!

DOES THIS WORK????????
Set Rst = Currentdb.OpenRecordset ("select * FROM Opgaver order by uge", dbOpenDynaset, dbReadOnly)

It DOES select the week number AND it also sorts after week number.

I want to know IF this works BEFORE I can give you solution to how to select records for a specific week, this is AFTER ALL what the ORIGINAL question was!!!!!
Avatar billede terry Ekspert
10. januar 2004 - 20:32 #23
10/01-2004 12:30:33 but your time is running out§!
Avatar billede a55830 Praktikant
10. januar 2004 - 20:37 #24
jeg vil lige sige for en ordensskyld
JEG ER IKKE PROGRAMØR

jeg har lagt en stump program ud og håbede at i kunne forstå det, jeg er meget taknemlig for alle de svar men jeg fatter ikke en fis når der bliver skrevet en lille stump kode til mig hvor skal jeg sætte den ind ????????

jeg syntes at jeg har forklaret mit problem meget klart men ..........
jeg vil mægtigt gerne sende min db men det kan jeg ikke pga de data der er i den.
kan i ikke fortælle hvad der er galt med min kode ??
håber vi kan finde en løsning

Thomas
Avatar billede a55830 Praktikant
10. januar 2004 - 20:42 #25
terry jeg er kedaf at du har misforstået mig eller at jeg ikke har forklaret mig i programørsprog.
Avatar billede terry Ekspert
10. januar 2004 - 20:45 #26
a55830>But a little responce does help! How are we to know, if you just say it doesnt work!

I have also offered to make it for you but havent had an answer on that yet!

DOES THIS work (sorted by week)?

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, Rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Uge As Object, u As String, ux As String, Tek As String, xls As New Excel.Application

On Error GoTo Errorhandler
'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
DoCmd.SetWarnings False
'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
DoCmd.OpenQuery "tilføjtemp"
'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel
'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel.
Me.Refresh
'Næste sætning definerer hvilken tabel der skal levere data og åbner denne
Set Rst = Currentdb.OpenRecordset ("select * FROM Opgaver order by uge", dbOpenDynaset, dbReadOnly)
'Excel åbnes ved hjælp af funktionen "CreateObject"
Set Obvar = CreateObject("excel.application")
xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
'Gør Excel synlig, Du kan også flytte denne linie længere ned...
'hvis eksporten skal være afsluttet når Excel bliver synlig
Obvar.Visible = True
'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
Set wkb = Obvar.Workbooks.Add
'Der sættes overskrifter på Excel-arket
wkb.Worksheets("Ark1").Cells(1, 1).Value = "Felt 2"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Felt 1"
'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
'Hvis der ekporteres tekst erstattes "Str$" med "Format"
u = Me.Tekst25
ux = Me.Tekst25 + 1
For i = 2 To Rst.RecordCount + 1
Set Uge = Rst.Fields![Uge]
If Uge = u Or ux Then
wkb.Worksheets("Ark1").Cells(i, 1).Value = Str$(Rst.Fields![TID])
wkb.Worksheets("Ark1").Cells(i, 2).Value = Str$(Rst.Fields![Uge])
Rst.MoveNext
Else
Rst.MoveNext
End If
Next
'Summen af felt2 udregnes
Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)"
wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 1).Value = Tek
'Linien tilpasser bredden af benyttede kolonner
wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
'Objektvariablen frigives
Set Obvar = Nothing
'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
DoCmd.OpenQuery "slettemp"
'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 94 Then
Resume Next
End If
End Sub
Avatar billede a55830 Praktikant
10. januar 2004 - 20:46 #27
som det er nu så skriver den alle data i et excel efter uge men jeg vil gerne have lov til at vælge hvilken uge den skal skrive så jeg ikke får dem alle sammen. Det kan jo blive en lang liste
Avatar billede terry Ekspert
10. januar 2004 - 20:48 #28
What code are you using to do this?
Avatar billede terry Ekspert
10. januar 2004 - 20:54 #29
we need to see the code whcih you have got to work!
Avatar billede terry Ekspert
10. januar 2004 - 21:04 #30
You need to place a text box on your form and name it txtUge

then replace ALL of the code with this.

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, Rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Uge As Object, u As String, ux As String, Tek As String, xls As New Excel.Application
Dim sSQL as string
On Error GoTo Errorhandler
'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
DoCmd.SetWarnings False
'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
DoCmd.OpenQuery "tilføjtemp"
'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel
'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel.
Me.Refresh
sSQL = "select * FROM Opgaver WHERE uge = " & Me.txtUge & " order by uge"
Set Rst = Currentdb.OpenRecordset (sSQL, dbOpenDynaset, dbReadOnly)
'Excel åbnes ved hjælp af funktionen "CreateObject"
Set Obvar = CreateObject("excel.application")
xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
'Gør Excel synlig, Du kan også flytte denne linie længere ned...
'hvis eksporten skal være afsluttet når Excel bliver synlig
Obvar.Visible = True
'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
Set wkb = Obvar.Workbooks.Add
'Der sættes overskrifter på Excel-arket
wkb.Worksheets("Ark1").Cells(1, 1).Value = "Felt 2"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Felt 1"
'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
'Hvis der ekporteres tekst erstattes "Str$" med "Format"
u = Me.Tekst25
ux = Me.Tekst25 + 1
For i = 2 To Rst.RecordCount + 1
Set Uge = Rst.Fields![Uge]
If Uge = u Or ux Then
wkb.Worksheets("Ark1").Cells(i, 1).Value = Str$(Rst.Fields![TID])
wkb.Worksheets("Ark1").Cells(i, 2).Value = Str$(Rst.Fields![Uge])
Rst.MoveNext
Else
Rst.MoveNext
End If
Next
'Summen af felt2 udregnes
Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)"
wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 1).Value = Tek
'Linien tilpasser bredden af benyttede kolonner
wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
'Objektvariablen frigives
Set Obvar = Nothing
'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
DoCmd.OpenQuery "slettemp"
'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 94 Then
Resume Next
End If
End Sub
Avatar billede a55830 Praktikant
10. januar 2004 - 21:05 #31
ok terry that code did not work it only gave me 1 line from the database
Avatar billede terry Ekspert
10. januar 2004 - 21:05 #32
As we still dont know what code you are using then this is just an example!
Avatar billede terry Ekspert
10. januar 2004 - 21:06 #33
a55830>What code? You need to be more specific, and you can write in DANISH
Avatar billede terry Ekspert
10. januar 2004 - 21:08 #34
10/01-2004 20:46:20 > "som det er nu så skriver den alle data i et excel efter uge ..."

I MUST SEE THE CODE WHICH DOES THIS!!!!!!!!!
Avatar billede a55830 Praktikant
10. januar 2004 - 21:08 #35
denne kode virker.
men den giver mig alle poster i tabelen

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, Rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Tek As String, xls As New Excel.Application

On Error GoTo Errorhandler
'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
DoCmd.SetWarnings False
'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
DoCmd.OpenQuery "tilføjtemp"
'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel
'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel.
Me.Refresh
'Næste sætning definerer hvilken tabel der skal levere data og åbner denne
Set Rst = DBEngine.Workspaces(0).Databases(0).OpenRecordset("Opgaver", dbOpenTable)
'Excel åbnes ved hjælp af funktionen "CreateObject"
Set Obvar = CreateObject("excel.application")
xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
'Gør Excel synlig, Du kan også flytte denne linie længere ned...
'hvis eksporten skal være afsluttet når Excel bliver synlig
Obvar.Visible = True
'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
Set wkb = Obvar.Workbooks.Add
'Der sættes overskrifter på Excel-arket
wkb.Worksheets("Ark1").Cells(1, 1).Value = "Felt 2"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Felt 1"
'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
'Hvis der ekporteres tekst erstattes "Str$" med "Format"
For i = 2 To Rst.RecordCount + 1
wkb.Worksheets("Ark1").Cells(i, 1).Value = Str$(Rst.Fields![TID])
wkb.Worksheets("Ark1").Cells(i, 2).Value = Str$(Rst.Fields![Uge])
Rst.MoveNext
Next
'Summen af felt2 udregnes
Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)"
wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 1).Value = Tek
'Linien tilpasser bredden af benyttede kolonner
wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
'Objektvariablen frigives
Set Obvar = Nothing
'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
DoCmd.OpenQuery "slettemp"
'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 94 Then
Resume Next
End If
End Sub
Avatar billede terry Ekspert
10. januar 2004 - 21:12 #36
This is the same code as we started with isnt it?

Try following my example 10/01-2004 21:04:26
Avatar billede a55830 Praktikant
10. januar 2004 - 21:12 #37
ok terry den sidste kode valgte den rigtige uge  menden gav mig kun 1 linie fra tabellen
Avatar billede terry Ekspert
10. januar 2004 - 21:13 #38
what data type is the field uge?
Avatar billede terry Ekspert
10. januar 2004 - 21:18 #39
Try this

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, Rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, Uge As Object, u As String, ux As String, Tek As String, xls As New Excel.Application
Dim sSQL as string
On Error GoTo Errorhandler
'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
DoCmd.SetWarnings False
'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
DoCmd.OpenQuery "tilføjtemp"
'Hvis du har oprettet en ny post, skal tabellen først opdateres, ellers ses den nye post ikke i Excel
'Me er den aktive formular og Refresh opdaterer den underliggende tabel / forespørgsel.
Me.Refresh
sSQL = "select * FROM Opgaver WHERE uge = " & Me.txtUge & " order by uge"
Set Rst = Currentdb.OpenRecordset (sSQL, dbOpenDynaset, dbReadOnly)
'Excel åbnes ved hjælp af funktionen "CreateObject"
Set Obvar = CreateObject("excel.application")
xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
'Gør Excel synlig, Du kan også flytte denne linie længere ned...
'hvis eksporten skal være afsluttet når Excel bliver synlig
Obvar.Visible = True
'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
Set wkb = Obvar.Workbooks.Add
'Der sættes overskrifter på Excel-arket
wkb.Worksheets("Ark1").Cells(1, 1).Value = "Felt 2"
wkb.Worksheets("Ark1").Cells(1, 2).Value = "Felt 1"
'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
'Hvis der ekporteres tekst erstattes "Str$" med "Format"
u = Me.Tekst25
ux = Me.Tekst25 + 1

Do until rst.eof
  Set Uge = Rst.Fields![Uge]
  If Uge = u Or ux Then
    wkb.Worksheets("Ark1").Cells(i, 1).Value = Str$(Rst.Fields![TID])
    wkb.Worksheets("Ark1").Cells(i, 2).Value = Str$(Rst.Fields![Uge])
  End If

    Rst.MoveNext

Loop


'Summen af felt2 udregnes
Tek = "=Sum(R[" + Str$(-Rst.RecordCount) + "]C:R[-1]C)"
wkb.Worksheets("Ark1").Cells(Rst.RecordCount + 2, 1).Value = Tek
'Linien tilpasser bredden af benyttede kolonner
wkb.Worksheets("Ark1").UsedRange.Columns.AutoFit
'Objektvariablen frigives
Set Obvar = Nothing
'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
DoCmd.OpenQuery "slettemp"
'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 94 Then
Resume Next
End If
End Sub
Avatar billede a55830 Praktikant
10. januar 2004 - 21:19 #40
det er ikke den samme kode vi startede med det er den orginale kode fra mugs
me jeg havde  tilføjet en text box. Men det virkede ikke den ignoret den.
uge er sat til "tal"

det er som om at den tæller de uger men den poster ikke noget i felterne
for det den lægger sammen i bunden er det antal linier nede som det antal posteringer der på den uge
Avatar billede terry Ekspert
10. januar 2004 - 21:22 #41
OK! a55830> I cant help if I cant see the program! There are far too many thuings which I can NOT see here!
For example, in the code there is a field Me.Tekst25 whcih I have NO IDEA what is. We cant be expected to just guess until we get it right!

If you cant send the dB then ask mugs to correct it for you!
Avatar billede terry Ekspert
10. januar 2004 - 21:23 #42
Now I'm off for the evening
Avatar billede a55830 Praktikant
10. januar 2004 - 21:24 #43
desvære det med loopet virkede ikke
der kom intet data i excel
Avatar billede a55830 Praktikant
10. januar 2004 - 21:29 #44
Terry the db is on the way to you
Avatar billede terry Ekspert
11. januar 2004 - 10:32 #45
I have received the dB, I will take a look and get back as soon as possible
Avatar billede terry Ekspert
11. januar 2004 - 11:25 #46
a55830>Cany you send me your dB again, I dont seem to be able to open it.
Avatar billede a55830 Praktikant
11. januar 2004 - 11:48 #47
er på vej
Avatar billede terry Ekspert
11. januar 2004 - 13:03 #48
Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, u As String, ux As String, Tek As String, xls As New Excel.Application
Dim sSQL As String

On Error GoTo Errorhandler

    'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
    DoCmd.SetWarnings False
    'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
    DoCmd.OpenQuery "slettemp"
    'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
    DoCmd.OpenQuery "tilføjtemp"
   
    sSQL = "select * FROM Opgaver WHERE uge = " & Me.txtuge & " order by uge"
    Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
   
    'Excel åbnes ved hjælp af funktionen "CreateObject"
    Set Obvar = CreateObject("excel.application")
   
    xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
   
    'Gør Excel synlig, Du kan også flytte denne linie længere ned...
    'hvis eksporten skal være afsluttet når Excel bliver synlig
    Obvar.Visible = True
    'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
    Set wkb = Obvar.Workbooks.Add
    'Der sættes overskrifter på Excel-arket

    'Use index instead of name (language dependant)
    wkb.Worksheets(1).Cells(1, 1) = "Felt 2"
    wkb.Worksheets(1).Cells(1, 2) = "Felt 1"

    'Or record count will not be correct
    rst.MoveLast
    rst.MoveFirst
   
    'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
    i = 2
    Do Until rst.EOF
        wkb.Worksheets(1).Cells(i, 1) = Str(rst.Fields![TID])
        wkb.Worksheets(1).Cells(i, 2) = Str(rst.Fields![Uge])
   
        rst.MoveNext
        i = i + 1
    Loop

    'Summen af felt2 udregnes
    Tek = "=Sum(R[" + Str$(-rst.RecordCount) + "]C:R[-1]C)"
    wkb.Worksheets(1).Cells(rst.RecordCount + 2, 1).Value = Tek
    'Linien tilpasser bredden af benyttede kolonner
    wkb.Worksheets(1).UsedRange.Columns.AutoFit
   
Sub_Exit:

    On Error Resume Next
   
    'Objektvariablen frigives
    Set Obvar = Nothing
   
    'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
    DoCmd.SetWarnings True
   
Errorhandler:
    If Err.Number = 94 Then
        Resume Next
    Else
        MsgBox "Error: " & Err.Number & " - " & Err.dec
        Resume Sub_Exit
    End If
End Sub
Avatar billede terry Ekspert
11. januar 2004 - 13:05 #49
Little error crept in there

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, u As String, ux As String, Tek As String, xls As New Excel.Application
Dim sSQL As String

On Error GoTo Errorhandler

    'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
    DoCmd.SetWarnings False
    'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
    DoCmd.OpenQuery "slettemp"
    'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
    DoCmd.OpenQuery "tilføjtemp"
   
    sSQL = "select * FROM Opgaver WHERE uge = " & Me.txtuge & " order by uge"
    Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
   
    'Excel åbnes ved hjælp af funktionen "CreateObject"
    Set Obvar = CreateObject("excel.application")
   
    xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
   
    'Gør Excel synlig, Du kan også flytte denne linie længere ned...
    'hvis eksporten skal være afsluttet når Excel bliver synlig
    Obvar.Visible = True
    'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
    Set wkb = Obvar.Workbooks.Add
    'Der sættes overskrifter på Excel-arket

    'Use index instead of name (language dependant)
    wkb.Worksheets(1).Cells(1, 1) = "Felt 2"
    wkb.Worksheets(1).Cells(1, 2) = "Felt 1"

    'Or record count will not be correct
    rst.MoveLast
    rst.MoveFirst
   
    'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
    i = 2
    Do Until rst.EOF
        wkb.Worksheets(1).Cells(i, 1) = Str(rst.Fields![TID])
        wkb.Worksheets(1).Cells(i, 2) = Str(rst.Fields![Uge])
   
        rst.MoveNext
        i = i + 1
    Loop

    'Summen af felt2 udregnes
    Tek = "=Sum(R[" + Str$(-rst.RecordCount) + "]C:R[-1]C)"
    wkb.Worksheets(1).Cells(rst.RecordCount + 2, 1).Value = Tek
    'Linien tilpasser bredden af benyttede kolonner
    wkb.Worksheets(1).UsedRange.Columns.AutoFit
   
Sub_Exit:

    On Error Resume Next
   
    'Objektvariablen frigives
    Set Obvar = Nothing
   
    'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
    DoCmd.SetWarnings True
   
Errorhandler:
    If Err.Number = 94 Then
        Resume Next
    Else
        MsgBox "Error: " & Err.Number & " - " & Err.Description
        Resume Sub_Exit
    End If
End Sub
Avatar billede terry Ekspert
11. januar 2004 - 13:55 #50
this will give you for two weeks
NOTE> This is only going to work until we get to the last week of the year, aftre that you wil need to take the your into account too!

Private Sub Kommandoknap3_Click()
Dim Obvar As Object, wkb As Object, rst As Recordset ' Variabelerklæringer
Dim i As Integer, Felt1 As Integer, Felt2 As Integer, u As String, ux As String, Tek As String, xls As New Excel.Application
Dim sSQL As String

On Error GoTo Errorhandler

    'Slår alle systemadvarsler fra, jeg gider bare ikke at se på dem
    DoCmd.SetWarnings False
    'kører en sletteforespørgsel, der sletter alle poster i den temporære tabel
    DoCmd.OpenQuery "slettemp"
    'Kører en en tilføjelsesforespørgsel, der sender alle poster i Forespørgsel1 over i den temporære tabel
    DoCmd.OpenQuery "tilføjtemp"
   
    sSQL = "select * FROM Opgaver WHERE (uge = " & Me.txtuge & " OR uge = " & Me.txtuge + 1 & ") order by uge"
    Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
   
    'Excel åbnes ved hjælp af funktionen "CreateObject"
    Set Obvar = CreateObject("excel.application")
   
    xls.Workbooks.Open Filename:="D:\VBA\XP\Mappe1.xls"
   
    'Gør Excel synlig, Du kan også flytte denne linie længere ned...
    'hvis eksporten skal være afsluttet når Excel bliver synlig
    Obvar.Visible = True
    'Variablen wkb sættes = projektmappen, der tilføjes med metoden Add
    Set wkb = Obvar.Workbooks.Add
    'Der sættes overskrifter på Excel-arket

    'Use index instead of name (language dependant)
    wkb.Worksheets(1).Cells(1, 1) = "Felt 2"
    wkb.Worksheets(1).Cells(1, 2) = "Felt 1"

    'Or record count will not be correct
    rst.MoveLast
    rst.MoveFirst
   
    'Løkken der henter data fra tabel1 i Access og lægger data ind i Excel...
    i = 2
    Do Until rst.EOF
        wkb.Worksheets(1).Cells(i, 1) = Str(rst.Fields![TID])
        wkb.Worksheets(1).Cells(i, 2) = Str(rst.Fields![Uge])
   
        rst.MoveNext
        i = i + 1
    Loop

    'Summen af felt2 udregnes
    Tek = "=Sum(R[" + Str$(-rst.RecordCount) + "]C:R[-1]C)"
    wkb.Worksheets(1).Cells(rst.RecordCount + 2, 1).Value = Tek
    'Linien tilpasser bredden af benyttede kolonner
    wkb.Worksheets(1).UsedRange.Columns.AutoFit
   
Sub_Exit:

    On Error Resume Next
   
    'Objektvariablen frigives
    Set Obvar = Nothing
   
    'Slår alle systemadvarsler til, husk altid at gøre dette hvis du har slået dem fra i starten af koden
    DoCmd.SetWarnings True
   
Errorhandler:
    If Err.Number = 94 Then
        Resume Next
    Else
        MsgBox "Error: " & Err.Number & " - " & Err.Description
        Resume Sub_Exit
    End If
End Sub
Avatar billede terry Ekspert
11. januar 2004 - 16:40 #51
have you received th elast file I sent Sun 11/01/2004 14:19 ?
Avatar billede a55830 Praktikant
13. januar 2004 - 08:51 #52
tak for hjælpen håber jeg kan træke på jer igen

Thomas
Avatar billede terry Ekspert
13. januar 2004 - 17:15 #53
selv tak :o)
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