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 VBA kod, Uppdatera tabell

Postades av 2006-04-13 10:22:24 - Anders Larsson, i forum access, Tråden har 13 Kommentarer och lästs av 1577 personer

Har följande problem:

När man trycker på en knapp i ett formulär skall tabellen Currency uppdateras. Just när man trycker på denna knapp skall ChoosenCurrency ändras till True istället för false (man väljer vilken valuta man vill använda) när man väljer Svenska kronor.

Sedan skall detta formulär stängas och nästa formulär som heter "test Sales" öppnas.

Just i detta fallet händer INGENTING! Databasen uppdateras inte överhuvudtaget. Detta innebär att jag inte heller transporteras till nästa formulär...

Private Sub OpenSales_Click()
On Error GoTo Err_OpenSales_Click

    Dim cmd As ADODB.Command
    On Error GoTo Err_OpenSales_Click
    
    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = CurrentProject.Connection
    cmd.CommandText = "UPDATE Currency SET ChoosenCurrency = True WHERE Name = SEK"
    cmd.Parameters.Append cmd.CreateParameter("SEK", adInteger, adParamInput, , "SEK")
    cmd.Execute
    Me.Requery
    
    Dim stDocName As String
    Dim stLinkCriteria As String
    DoCmd.Close
    stDocName = "test Sales"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    MsgBox Err.Description, vbCritical

Exit_OpenSales_Click:
    Exit Sub

Err_OpenSales_Click:
    MsgBox Err.Description
    Resume Exit_OpenSales_Click
    
End Sub


Tacksam för all hjälp /Anders


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-13 11:03:48 - Johan Djupmarker

Vet du om koden körs alls? Testa att lägga en MsgBox överst för att se att det körs.

/Johan


Svara

Sv:Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-13 11:36:44 - Anders Larsson

Ouuups... Hade råkat byta namn på knappen!

MEN nu kommer nästa felmmeddelande: "Programmet använder ett värde av felaktig typ för den aktuella åtgärden".

Kan misstänka att det har att göra med SEK

    cmd.CommandText = "UPDATE Currency SET ChoosenCurrency = True WHERE Name = SEK"
    cmd.Parameters.Append cmd.CreateParameter("SEK", adInteger, adParamInput, , "SEK")


När jag vill hitta SEK i namn och sedan uppdatera ChoosenCurrency. Är inte helt hundra på att jag skrivit rätt på dessa två rader.

/Anders


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-13 13:03:24 - Andreas Hillqvist

ÄR inte name en sträng?
Testa med:

Private Sub OpenSales_Click()
Dim cmd As ADODB.Command
On Error GoTo Err_OpenSales_Click
    
    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = CurrentProject.Connection
    cmd.CommandText = "UPDATE [Currency] SET [ChoosenCurrency] = True WHERE [Name] = [@Currency]"
    cmd.Parameters.Append cmd.CreateParameter("@Currency", adVarChar, adParamInput, 20, "SEK")
    cmd.Execute
    Me.Requery
    
    Dim stDocName As String
    Dim stLinkCriteria As String
    DoCmd.Close
    stDocName = "test Sales"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    
    MsgBox Err.Description, vbCritical

Exit_OpenSales_Click:
    Exit Sub

Err_OpenSales_Click:
    MsgBox Err.Description
    Resume Exit_OpenSales_Click
    
End Sub

Borde du inte avmarkera de andra valutorna samtidigt? Om det är så att bara en kan vara vald sammtidigt.


Svara

Sv:Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-13 13:22:01 - Anders Larsson

Name är en sträng, är det detta som är problemet?

Det skall jag göra, tanken finns där redan, men jag vill först få det att fungera så att jag kan välja valuta innan jag går vidare.

Tyvärr kommer fortfarande felmmeddelande: "Programmet använder ett värde av felaktig typ för den aktuella åtgärden".

Den stoppar på raden: " cmd.Parameters.Append cmd.CreateParameter("@Currency", adVarChar, adParamInput, 20, "SEK")"



Fråga för starkt intresses skull!

Varför skriver du [@Currency], "@Currency", 20 och "SEK". SEK förstår jag är värdet, men de andra tre:

<code vba>
cmd.CommandText = "UPDATE [Currency] SET [ChoosenCurrency] = True WHERE [Name] = [@Currency]"
cmd.Parameters.Append cmd.CreateParameter("@Currency", adVarChar, adParamInput, 20, "SEK")
<code>

/Anders

Ps. Vet inte varför svaret ser mycket myskout??? Letar vidare på nätet samtidigt för att kunna hitta vad som kan vara fel... Ds.


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-13 15:21:26 - Anders Larsson

Name är en sträng, är det detta som är problemet?

Det skall jag göra, tanken finns där redan, men jag vill först få det att fungera så att jag kan välja valuta innan jag går vidare.

Tyvärr kommer fortfarande felmmeddelande: "Programmet använder ett värde av felaktig typ för den aktuella åtgärden".

Den stoppar på raden: " cmd.Parameters.Append cmd.CreateParameter("@Currency", adVarChar, adParamInput, 20, "SEK")"


Fråga för starkt intresses skull!

Varför skriver du [@Currency], "@Currency", 20 och "SEK". SEK förstår jag är värdet, men de andra tre:

<code vba>
cmd.CommandText = "UPDATE [Currency] SET [ChoosenCurrency] = True WHERE [Name] = [@Currency]"
cmd.Parameters.Append cmd.CreateParameter("@Currency", adVarChar, adParamInput, 20, "SEK")
<code>

/Anders

Ps. Vet inte varför det tidigare svaret ser mycket myskout??? Letar vidare på nätet samtidigt för att kunna hitta vad som kan vara fel... Ds.


Svara

Sv:Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-14 18:19:07 - Andreas Hillqvist

Koden fungerar att köra hos mig.


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-16 20:34:24 - Anders Larsson

Att fela är mänskligt... Men för att verkligen röra till det behövs en dator!!!

Min kod såg exakt ut som den du har skrivit - Fungerade ej!
Kopierade din kod till raden under - Exakt likadan FUNGERADE?!?!? Vet ej varför.

Nu kom tyvärr nästa lilla felmeddelande:

Raden: MsgBox Err.Description, vbCritical
Ger ett felmeddelande med en varning, men det står inte varför den varnar utan bara en OK knapp...???

Markerar jag att raden inte skall köras fungerar det klockrent, men varför varnar den? Någon som vet.
En litet, men kraftigt irriterande fel...

Går det att få fram vilken rad den varnar den på? För att hitta felet...

Tack så mycket för all hjälp
Mvh Andesr


Svara

Sv:Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-17 10:54:39 - Andreas Hillqvist

Varför behöver du den alls? Jag tror den inte fyller någon funktion. Testa att plocka bort den:

Private Sub OpenSales_Click()
Dim cmd As ADODB.Command
On Error GoTo Err_OpenSales_Click
    
    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = CurrentProject.Connection
    cmd.CommandText = "UPDATE [Currency] SET [ChoosenCurrency] = True WHERE [Name] = [@Currency]"
    cmd.Parameters.Append cmd.CreateParameter("@Currency", adVarChar, adParamInput, 20, "SEK")
    cmd.Execute
    Me.Requery
    
    Dim stDocName As String
    Dim stLinkCriteria As String
    DoCmd.Close
    stDocName = "test Sales"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    
Exit_OpenSales_Click:
    Exit Sub

Err_OpenSales_Click:
    MsgBox Err.Description, vbCritical
    Resume Exit_OpenSales_Click
    
End Sub

Sedan är frågan om du behöver göra en Me.Requery om du ändå stänger fönstret. Borde bara ta onödiga resurser.


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-17 12:48:06 - Anders Larsson

Jag har markerat så att den hoppar över båda två...

Undrar bara varför den varnade... Utan ett meddelande av vad som var fel.


Nu kommer jag till nästa problem. Jag vet vilket land (valuta) jag valt.

Min tabell med listpriser ser ut på följande sätt

ListPrice
----------
KitName SEK NOK DKK EEK LTL LVL


Jag får fram vilken valuta jag valt med:

(SELECT [Currency].Name FROM [Currency] WHERE [Currency].ChoosenCurrency=TRUE) AS Country


Hur gör jag för att välja rätt kolumn med rätt listpris? Exempelvis om det är norska kronor som jag valt (NOK). Denna typ av fråga har jag inte lyckats lista ut ännu...

Går det att använda svaret i första frågan, vilket jag hoppas på eller måste jag bygga om mina tabeller från grunden, vilket jag inte hoppas för det tar troligtvis alldeles för lång tid för mig...

Mvh Anders


Svara

Sv:Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-17 12:58:34 - Andreas Hillqvist

Du får göra det med kod.

Jag tycker det är "Skumt" att markera vilket pris du vill se med en tabell. Skall man bara se ett pris eller flera?


Din struktur är inte dynamisk. Om mna vill lägga till ytterligare en valuta måste man förändra datastrukturen.
Du kan annars strukturerar det:

Table: ListPrice
Field: KitName
Field: Currency
Field: Price

På så sätt kan du lägga till och ta bort valutor. Samt att data lagras bara för de poster som det angivits.


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-17 13:25:19 - Anders Larsson

Tanken som företaget ville ha var nämligen att den skulle bara fungera med en valuta. Förra veckan kom de och önskade att de ville att den skulle fungera med flera valutor. PROBLEM i och med detta... Jag har ca. fem veckor kvar på mitt exjobb och jag räknar med att fyra går åt till dokumentering! I stort sett är alla sql frågor, formulär osv. klara, men detta innebär att jag får ändra i stort sett allt, pga att kraven ser annorlunda ut idag en vad de var för två månader sedan när jag startade...

Jag hoppades att det fanns en hyfsat enkel men kanske lite "ful" lösning på problemet. Inte bra att göra så men kanske skulle lösa problemet.


Mvh Anders


Svara

Sv:Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-17 17:04:22 - Andreas Hillqvist

Då det rör sig om ett fleranvändarsystem skulle jag inte rekomendera att välja valuta genom en tabell.
Använd istället en global variabel och en funktion i frågan.

Detta är ett exempel på en sådan fullösning:

Placera följande kod i en modul:

Option Compare Database
Option Explicit

Public Enum CurrencyEnum
    ceUninitiliezed
    ceSEK
    ceEURO
End Enum

Private mCurrentCurrency As CurrencyEnum

Public Property Get CurrentCurrency() As CurrencyEnum
    If mCurrentCurrency = ceUninitiliezed Then
        mCurrentCurrency = GetSetting("MyApplication", "Settings", "Currency", ceSEK)
    End If
    CurrentCurrency = mCurrentCurrency
End Property
Public Property Let CurrentCurrency(Value As CurrencyEnum)
    SaveSetting "MyApplication", "Settings", "Currency", Value
    mCurrentCurrency = Value
End Property

Function SelectCurrency(ValueSEK, ValueEURO)
    Select Case mCurrentCurrency
    Case ceSEK
        SelectCurrency = ValueSEK
    Case ceEURO
        SelectCurrency = ValueEURO
    End Select
End Function


Fråga:
SELECT Products.Product, SelectCurrency(Products.SEK, Products.EURO) AS Price
FROM Products;


Du får själv anpassa kodenen från detta exempel.


Svara

Sv: Problem med VBA kod, Uppdatera tabell

Postades av 2006-04-17 19:53:15 - Anders Larsson

Tack för all hjälp du har gett mig men jag beslutade mig för att bygga om databasen. Hittills har jag lyckats skapa ca 20% av det totala jobbet, för att jag lärt mig mycket av lösningarna tidigare under arbetets gång. Med detta som bakgrund har jag bestämt mig för att börja om från början.

Detta innebär att jag förhoppningsvis i slutet på denna vecka har en BRA version att visa för dem, samt att jag gör en rätt och riktig grund att stå på. Inte kul att visa lite "fula" saker för handledaren sedan. Jag kanske är dum, men detta känns som ett rätt beslut.

Dock kan det innebära att jag fortfarande stöter på problem, men troligtvis inte av samma art som tidigare eller lika ofta...

Om du har lust får du gärna titta på min nästa fråga om Listbox som jag inte förstår meddelandet på.

Mvh Anders


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 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

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 615
27 953
271 709
555
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