Just nu i M3-nätverket
Gå till innehåll

MickeF

Medlem
  • Antal inlägg

    145
  • Gick med

  • Senaste besök

  • Vunnit antal dagar

    2

Allt postat av MickeF

  1. Ok, två saker du behöver göra: 1) Döp om modulen från "Rensa_Ecl" till t.ex. "Rensa Ecl Modul". (Modulnamn och function-namn får inte vara samma) 2) Sedan byter du ut anropet " DoCmd.OpenModule "Rensa_Ecl" till enbart Rensa_Ecl Sen borde det fungera.
  2. Modulen består av ett antal Function/Sub. Så du vill alltså köra en Sub eller anropa en Function. Private Sub btnOpenObject_Click() ' Visa välkomstmeddelande valkomna "Micke" End Sub Om du har en Sub i Rensa_Ecl som t.ex ser ut så här: Sub valkomna(personnamn AS String) Msgbox "Välkommen " & personnamn End Sub
  3. 1) Öppna egenskaper för en knapp och skapa en händelse "Vid klickning" enligt bilden: 2) Klicka på knappen med dom tre punkterna för att komma till funktionen 3) Ändra funktionen till följande kod Private Sub btnOpenObject_Click() ' Öppna modul i designläge DoCmd.OpenModule "Rensa_Ecl" End Sub
  4. Vad bra att det fungerade Men oj, det var många frågor. Kan tyvärr inte ta mig tid att svara på allt det där. Men denna relaterade FRÅGA: SVAR: - Just i fallet när man när man vill ha tag i min eller max-värde så är det en lösning att i Access dela upp frågan i två olika frågor som du gjorde (Obs detta gäller när man ÄVEN vill ha tag i övriga fält från besiktningstabellen, som kommentarer, namn, pris etc). - Vill du bara ha tag i maxvärdet dock så går det bra att skriva som en enda fråga. - Det går att skriva som en enda fråga men då måste man skriva ren SQL-kod. - Annars fungerar det ofta med endast en fråga. Välkommen Access
  5. Så här: 1) Skapa en fråga som tar fram fordons-ID och maxvärdet i besiktningstabellen. 2) Skapa sedan en annan fråga som länkar tabellen Fordon mot föregående fråga.
  6. Tack den där debug-biten glömde jag ta bort Nu är det redigerat.
  7. Sub SkapaSchema() Dim dataRad%, dataKol%, printRad%, ant% With Sheets(1) dataRad = 2 printRad = 2 ' Alla rader fram till tom cell Do Until IsEmpty(.Cells(dataRad, 1)) dataKol = 3 ' Hämta antal i kolumn C ' Alla kolumner fram till tom cell Do Until IsEmpty(.Cells(dataRad, dataKol)) For ant = 1 To .Cells(dataRad, dataKol) Sheets(2).Cells(printRad, 1) = .Cells(10, 1) ' Datum Sheets(2).Cells(printRad, 2) = .Cells(dataRad, 1) ' Intervall Sheets(2).Cells(printRad, 3) = .Cells(dataRad, 2) ' Min Sheets(2).Cells(printRad, 4) = .Cells(1, dataKol) ' Enhet printRad = printRad + 1 Next dataKol = dataKol + 1 Loop dataRad = dataRad + 1 Loop End With ' Rensa i slutet Do Until IsEmpty(Sheets(2).Cells(printRad, 1)) Sheets(2).Cells(printRad, 1) = Null Sheets(2).Cells(printRad, 2) = Null Sheets(2).Cells(printRad, 3) = Null Sheets(2).Cells(printRad, 4) = Null printRad = printRad + 1 Loop End Sub
  8. Att kopiera information från tre formulär till ett fjärde kan göras på flera olika sätt. Skicka ett PM eller epost så kan vi titta på det tillsammans.
  9. Tyvärr, det går inte att koppla en händelse till postväljaren.
  10. Ett sätt det går att lösa det på med hjälp av SELECT TOP och DMax qry1 : SELECT TOP 1000000 tblTest.* FROM tblTest ORDER BY tblTest.ID; qry2 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry1"))) ORDER BY tblTest.ID; qry3 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry2"))) ORDER BY tblTest.ID; qry4 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry3"))) ORDER BY tblTest.ID; qry5 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry4"))) ORDER BY tblTest.ID; qry6 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry5"))) ORDER BY tblTest.ID; qry7 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry6"))) ORDER BY tblTest.ID; qry8 : SELECT TOP 1000000 tblTest.* FROM tblTest WHERE (((tblTest.ID)>DMax("ID","qry7"))) ORDER BY tblTest.ID;
  11. Tre alternativ: * Om det är ett engångsjobb är det enklast att bara klippa och klistra * Importfunktion i Access * Slutligen finns programkod om du vill ha intelligens i importen
  12. Hur ser tabellen och ev programkod ut nu?
  13. Tyvärr så har jag inte tid att försöka hjälpa dig med detta. För mycket och för svårt att exakt förstå vad du menar.
  14. Är det så att du har produkter som ska levereras med olika intervall? T.ex. Produkt A med leveranskod 1w1 ska levereras varje vecka Produkt B med leveranskod 2w1 ska levereras varannan vecka (antingen v1+3 eller v2+4 beroende på kundens startvecka) Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v1+5 etc om kunden har startvecka 1 Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v2+6 etc om kunden har startvecka 2 Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v3+7 etc om kunden har startvecka 3 Produkt C med leveranskod 4w1 ska levereras var 4:e vecka, alltså v4+8 etc om kunden har startvecka 4 Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v2+6 etc om kunden har startvecka 1 Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v3+7 etc om kunden har startvecka 2 Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v4+8 etc om kunden har startvecka 3 Produkt D med leveranskod 4w2 ska levereras var 4:e vecka start v2, alltså v5+9 etc om kunden har startvecka 4
  15. Kan du förklara tydligare vad du menar! och kontrollera att utdata vecka 2 verkligen stämmer samt ge utdata när nuvarande vecka är 1, 3, 4 och 5
  16. Hämta data så här: 1) F11-knappen öppnar en objektlistan till vänster 2) Dubbelklicka på tabellen RUM 3) CTRL-A (markera allt) 4) CTRL-C (kopiera) 5) Klistra in i Excel
  17. Det där är en riktigt intressant frågeställning och problemlösning, dvs hur man kan snabba upp inmatningen av många poster när poster liknar varandra. Så pass intressant att jag skapade ett förslag på lösning i Microsoft Access (version 2013). Programmet hanterar alla tre punkterna 1) Skapa ny post (Ny post) 2) Kopiera gammalt rum och spara som nytt (Skapa kopia) 3) Hämta och ändra ett rum (Sök rum) även 4) Ta bort post Programmet är helt gjort i Access som sagt även fast det är Excel som efterfrågas. Resultatet lagras även i en accesstabell men skulle mycket enkelt kunna kopplas till ett exceldokument så att all data sparas i Excel. Programmet finns att ladda ner på http://www.accesskonsult.se/databaser/Kopiera-rumsdata.zip Har ni inte Access installerat kan ni alltid gratis installera Access runtime och köra programmet se http://accesskonsult.se/access/gratis-microsoft-access-runtime/
  18. Tricket är att hitta sökvägen till programmets mapp, Mina dokument eller Windows programmapp och sedan länka om tabellerna till den databas som ska användas. Jag har lagt upp lite beskrivning och kod för detta på http://accesskonsult.se/lanka-tabeller-till-annan-accessdatabas/
  19. Ok, detta blir sista svaret på ett tag har mycket annat som behöver min tid. Om man vill avbryta ändringen ska man sätta parametern cancel till värdet True Private Sub Adress_BeforeUpdate(Cancel As Integer) If MsgBox("utföra ändring?", vbOKCancel) = vbCancel Then Cancel = True End If End Sub
  20. Det är samma som If (MsgBox("Öppna formuläret?", vbOKCancel) = vbOK) Then If (MsgBox("Öppna formuläret?", vbOKCancel) = vbCancel) Then vbOkCancel är bara en konstant som har värdet 1Även vbOk är en konstant som har värdet 1 och vbCancel=2.
  21. Nej det är bara plats för andra typer av värden som kan skickas till funktionen Msgbox När man utelämnar värden mellan kommatecknen så betyder det att default värdena kommer användas. I det här fallet har två av parametrarna skickats med: Den första som är formulärnamnet "frmProdukt". Den femte som betyder att formuläret ska öppnas i inmatningsläge. Parametrar 2, 3 och 4 har utelämnats. Tidigare så var det ändå bara defaultvärden du skickade med där. Koden blir mycket enklare att läsa men fungerar ändå på precis samma sätt.
  22. Hade missat denna kommentar Det jag menar är att koden som är kopplad till Sök-knappen inte behövs för filtreringen görs av koden i AfterUpdate. När man skrivit in något i sökrutan och sedan klickar på knappen så kommer AfterUpdate köras innan fokus flyttas till knappen. Så filtreringen är redan gjord. Prova ta bort koden som är knuten till knappens händelse OnClick så kommer du se att programmet fungerar ändå. Men det är som sagt petitesser, utan stora datamängder så går det snabbt att filtrera två gånger.
  23. (fraga$) är en kortvariant av (fraga AS String) D.v.s en deklaration som säger att funktionen ska ha en parameter av typen sträng.
  24. Bara acAdd behövs. Övriga parametrar kan lämnas blanka då angivna värden är defaultvärdena. Detta räcker alltså: DoCmd.OpenForm "frmProdukt", , , , acAdd OBS du har stavat acAdd med två cc (accAdd) PS Övriga frågor verkar du ha hittat svaren på själv DS
  25. Har själv bara använt makron till väldigt enkla saker så där kommer jag inte ge några råd. Tycker att VBA är så mycket mer flexibelt och kraftfullare.
×
×
  • Skapa nytt...