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


Problem med bifogade filer och VBA-kod.

Postades av 2010-01-07 20:21:47 - Carina Svensson, i forum access, Tråden har 9 Kommentarer och lästs av 1915 personer

Hej!
Idealet hade varit om stängningkrysset uppe i formulärens högra hörn hade haft en "Vid klickning"-händelse och att man kunde lägga in en Me.Undo i den. För det ska bara sparas om man klickar på "Spara" eller "Spara ändring"-knappen. Men stängningskrysset är ju en formuläregenskap och inte ett objekt, så jag ser ingen möjlighet till det?

Därför har jag lagt in en Me.Undo i formulärens "Före uppdatering"-händelse och att sparandet till tabell måste ske via VBA-kod. Det fungerar bra om man kommenterar bort bifogade filerna, men om man tar med även dem så blir det följande felmeddelande vid både sparande av ny post och ändring av post:

körfel nr '-2147217887(80040e21)' Det går inte att utföra operationen.

Så här ser aktuell kod ut:

' Kodsnutt för att spara ny post
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "HYRESGÄST", CurrentProject.Connection, _
adOpenDynamic, adLockOptimistic

With rs
'Add new record to end of Recordset:
.AddNew
'Add Data:
![Hyresgäst] = Me.Företag.Value
![E_postadress] = Me.E_postadress.Value
![Anteckningar] = Me.Anteckningar.Value
![Bifogade filer] = Me!Bifogade_filer
![Efternamn] = Me.Efternamn.Value
![Förnamn] = Me.Förnamn.Value
'Commit the changes:
.Update
End With
rs.Close
Set rs = Nothing

'Kodsnutt för att spara ändringar i redan inlagd post:
Dim rs As ADODB.Recordset
Dim SQLStmt As String

'Hämta aktuell post
Set rs = New ADODB.Recordset
SQLStmt = "SELECT * FROM HYRESGÄST WHERE Hyresgäst = '" & HyresgästNamn & "'"
rs.Open SQLStmt, CurrentProject.Connection, _
adOpenDynamic, adLockOptimistic

'Sätt in de nya uppgifterna
If Not rs.EOF Then
rs!Hyresgäst = Me!Företag
rs!E_postadress = Me!E_postadress
rs!Anteckningar = Me!Anteckningar
rs![Bifogade filer] = Me![Bifogade filer]
rs!Efternamn = Me!Efternamn
rs!Förnamn = Me!Förnamn
rs.Update
End If
rs.Close
Set rs = Nothing

Går det även att lägga in bifoga filer via de här sätten?
Hur skriver man för den raden isåfall, både för ny post och ändring av post?

Mycket tacksam för hjälp!
/PiteCarina


Svara

Sv: Problem med bifogade filer och VBA-kod.

Postades av 2010-01-08 11:33:37 - Åsa Holmgren

Jag tycker också att din ideal-bild är klart mer tilltalande ;)

Kan du inte testa något i den här stilen:

Option Compare Database
Option Explicit

Private mbSave As Boolean

Private Sub cmdOK_Click()
    mbSave = True
    DoCmd.Close acForm, Me.Name
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Not mbSave Then Me.Undo
End Sub

Det fungerar om formuläret stängs efter att användaren klickar på spara-knappen. Om formuläret döljs eller om det går att klicka vidare till nästa post behöver variabeln nollställas vid ny post.


Svara

Sv:Problem med bifogade filer och VBA-kod.

Postades av 2010-01-08 14:01:59 - Carina Svensson

Tack Åsa!
Det fungerar perfekt att göra så! :-)
Så mycket enklare och säkrare att lösa det på ditt sätt!


Svara

Sv: Problem med bifogade filer och VBA-kod.

Postades av 2010-01-08 14:35:59 - Carina Svensson

I Kontrakt-formuläret så kan det behövas läggas in i två tabeller, Hyresgäst och Kontrakt. Beroende på om det är en ny hyresgäst eller inte så har man klickat i en checkbox i föregående formulär. Checkboxen styr om hyresgästfälten ska visas eller inte i Kontrakt-formuläret.

Om det är en ny hyresgäst så undersöks via VBA-kod vilket hyresgäst_id som den nya Hyresgäst-posten får och det används sedan som främmandenyckel för den nya posten i Kontrakttabellen.

Därför undrar jag om det hade det gått att skriva och använda någonting liknande:

![Bifogade filer] = Me.[Bifogade filer] ?

Om inte så får jag nog göra så att användaren måste fylla i två formulär, om hyresgästen är ny och ett kontrakt ska registreras samtidig?


Svara

Sv:Problem med bifogade filer och VBA-kod.

Postades av 2010-01-08 21:54:35 - Andreas Hillqvist

Vad är "Bifogade filer" för kontroll?


Svara

Sv: Problem med bifogade filer och VBA-kod.

Postades av 2010-01-08 22:15:44 - Carina Svensson

Det är en "Bifogad fil"-kontroll, d.v.s. "Gem"-kontrollen längst ned till höger bland "Kontroller" i "Design"-fliken.


Svara

Sv:Problem med bifogade filer och VBA-kod.

Postades av 2010-01-09 13:35:42 - Åsa Holmgren

"Bifogad fil"-datatypen kan lagra flera värden i samma fält. Den är speciell för Access 2007 och kräver att alla användare har just den versionen av Access eller senare. "Bifogad fil" stödjs inte av ADO som du använder i din kod, utan man behöver använda den senaste versionen av DAO (ACEDAO).

http://www.utteraccess.com/forums/printthread.php?Board=53&main=1241488&type=post

Är fortfarande tveksam om du verkligen behöver manipulera recordsets "manuellt" i din applikation.


Svara

Sv: Problem med bifogade filer och VBA-kod.

Postades av 2010-01-09 15:44:03 - Carina Svensson

Ok, ja då var det därför som det blev felmeddelande! Jag trodde att ADO skulle klara av "Bifogad fil" och att DAO var på väg bort. Hade inte hört talas om ACEDAO. Tack för länken jag har kollat på den!

Helst skulle jag vilja slippa manipulera recordsets manuellt, även i det här formuläret, men både hyresgäst- och kontraktuppgifterna fylls i i samma formulär och sparas vid samma knapptryckning.

Kanske jag måste "tvinga" användaren att först fylla i och sända iväg hyresgästuppgifterna via en "Spara hyresgäst"-knapp innan den kan fylla i kontraktuppgifterna? Att rätt hyresgästnummer då blir hämtat från hyresgästtabellen och ifyllt i ett textfält bland kontraktuppgifterna. Då blir ju hyresgäst- och kontraktuppgifterna ihopkopplade. Men då gäller det ju att inte hyresgästuppgifterna sparas även då man trycker på "Spara kontrakt"-knappen.

Eller så gör jag som jag hade i början, att användaren först måste gå in och registrera i hyresgästformuläret och sedan i kontraktformuläret. Men jag tyckte att det skulle vara så mycket smidigare för användaren att den även kunde fylla i hyresgästuppgifterna i kontraktformuläret, ifall det är en ny hyresgäst.

Nu har jag "tänkt högt" och undrar vilken lösning du rekommenderar? Jag har märkt att jag som nybörjare på Access och VBA har lätt för att komplicera till det.

Så här ser hela den aktuella koden ut:

'Om även en ny hyresgäst ska läggas in
If (Me.Företag.Visible = True) Then
'Skapar en koppling
Dim cnn1 As ADODB.Connection
Set cnn1 = CurrentProject.Connection

'Lägger in ny hyresgäst
Dim rs2 As ADODB.Recordset
Set rs2 = New ADODB.Recordset
rs2.Open "HYRESGÄST", CurrentProject.Connection, _
adOpenDynamic, adLockOptimistic

With rs2
'Add new record to end of Recordset:
.AddNew
'Add Data:
![Hyresgäst] = Me.Företag.Value
![E_postadress] = Me.E_postadress.Value
![Anteckningar] = Me.HyresgästAnteckningar.Value
'![Bifogade filer] = Me.Bifogade_filer
![Efternamn] = Me.Efternamn.Value
![Förnamn] = Me.Förnamn.Value
'Commit the changes:
.Update
End With
rs2.Close
Set rs2 = Nothing

'Tar reda på vilket hyresgästnr som den nya hyresgästen får, ska användas i KONTRAKT-tabellen.
Dim myRecordSet As New ADODB.Recordset
Dim Hyresgästnummer As Integer
myRecordSet.ActiveConnection = cnn1
myRecordSet.Open "SELECT Max(Hyresgäst_nr) FROM HYRESGÄST"
Hyresgästnummer = myRecordSet.Fields(0).Value
End If

'Lägger in nytt kontrakt
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "KONTRAKT", CurrentProject.Connection, _
adOpenDynamic, adLockOptimistic

With rs
'Add new record to end of Recordset:
.AddNew
'Add Data:
![Kontrakt_nr] = Me.Kontrakt_nr.Value
If (Me.Företag.Visible = True) Then
'Använd hyresgästnr som den nya hyresgästen fick
![Hyresgäst_nr] = Hyresgästnummer
Else
' Använd hyresgästnumret som användaren valt i formulärets combobox.
![Hyresgäst_nr] = Me.Hyresgäst_nr.Value
End If

![Objekts_nr] = Me.Objekts_nr.Value
![Inflyttningsdatum] = Me.Inflyttningsdatum.Value
![Utflyttningsdatum] = Me.Utflyttningsdatum.Value
![Anteckningar] = Me.Anteckningar.Value
'![Bifogade filer] = Me.[Bifogade filer]
![Försäljningsyta m^2] = Me.[Försäljningsyta m^2].Value
![Bransch] = Me.Bransch.Value

'Commit the changes:
.Update
End With
rs.Close
Set rs = Nothing

Hoppas på hjälp att komma in på rätt spår!
/PiteCarina


Svara

Sv:Problem med bifogade filer och VBA-kod.

Postades av 2010-01-11 11:15:20 - Åsa Holmgren

Ett formulär kan ha en fråga med flera tabeller som datakälla.

Testa att göra en fråga med fälten [Hyresgäst_nr] och [Efternamn] från tabellen "HYRESGÄST" och [Hyresgäst_nr] och [Inflyttningsdatum] från tabellen "KONTRAKT". Visa frågans datablad.

Gå till ny post och skriv in ett existerande hyresgästnummer i den hyresgästnummer-kolumn som hör till KONTRAKT-tabellen. Notera att Efternamn för den hyresgästen fyll i automatiskt.

Gå till en ny post och skriv in ett nytt efternamn och ett nytt inflyttningsdatum. Notera att kopplingen mellan HYRESGÄST och KONTRAKT skapas helt automatiskt.

Du kan basera ditt formulär på en sådan fråga och låta Access sköta allt sparande och länkande.


Svara

Sv: Problem med bifogade filer och VBA-kod.

Postades av 2010-01-11 17:33:26 - Carina Svensson

Tack så jättemycket Åsa! :-)
Nu fungerar det även för det här formuläret!
Du har varit till jättestor hjälp!


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 159
27 952
271 704
780
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