Avatar billede maria.cand Nybegynder
24. marts 2004 - 23:25 Der er 22 kommentarer og
1 løsning

har brug for hutig hjælp til at sammen sætte to koder!!

JEg har følgende kode:Sub OPdaterSalg()
    TimeReg
    opdaterkundedata
    RydArk
End Sub


Sub opdaterkundedata()

Dim Antal As Byte
Antal = 0

BilAbbNormal:
For Each C In Range("D26:D29") ' Normal abb.
  If C.Value <> "" Then
      For Each CE In Range("B65:B69") ' hvis en af felterne med reg.nr er udfyldt, så ok
        If CE.Value <> "" Then
        GoTo BilSuper
        End If
      Next CE
    MsgBox "Der skal indtastes Registrerings nummer på bil(er)"
    Exit Sub
  End If
Next C
BilSuper:
  If Range("D30").Value <> "" Or Range("D31").Value <> "" Then ' BilSuper og BilSuper kombirabat
      For Each CE In Range("B65:B69") ' tjekker om der er mere end 1 bil
          If CE.Value <> "" Then
          Antal = Antal + 1
          End If
        Next
    If Antal = 0 Then
      MsgBox "Der Skal indtastes registrerings nummer på en' bil"
        Exit Sub
  ElseIf Antal > 1 Then
        MsgBox "Der må kun indtastes registrerings nummer på en' bil" & vbLf _
        & "Når der er valgt Bil Super"
        Exit Sub
    End If
End If

DataOK:

Call FindProdukter ' her finder den de valgte produkter



Datasti = "C:\Documents and Settings\smallsystems\Skrivebord\VITUS CRM\Prologic\Prologic marketing den. 23-03-04\Nyeste\Ny mappe\Ordre.mdb"
  ' Lav en forbindelse til Access databasen
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
    "Data Source=" & Datasti & ";"
   
    Set rs = New ADODB.Recordset
    ' Åben et emnemain data del
    If MsgBox("Tjek om data er korrekt inden de indsættes i kundedatabasen?", vbQuestion + vbOKCancel, "Skal de indsættes i TimeReg?") = vbCancel Then
Exit Sub
End If
        With rs
            .Open "DataFraExcel where [EmneNr]= '" & Range("J5").Value & "'", cn, adOpenKeyset, adLockOptimistic, adCmdTable
            If .EOF Then
                .AddNew ' Ny kunde
                .Fields("EmneNr") = Range("J5").Value
            Else
          '    If MsgBox("Kunden eksisterer - skal kundebasisdata opdateres ?", vbYesNo, "Kunde eksisterer") = vbNo Then
          '          .Close
          '          GoTo nokundeupdate
              ' End If
               
            End If

           
            ' tilføj værdier til hvert felt i recorden
            .Fields("Navn") = Range("E4").Value
            .Fields("Adresse") = Range("E5").Value
            .Fields("PostNr") = Range("E6").Value
            .Fields("TelefonNr") = Range("H7").Value
            .Fields("Fødselsdag") = Range("J6").Value
            .Fields("Phoner id") = Range("E7").Value
            .Fields("Omsætning") = Range("G72").Value
          ' .Fields("Ikraftdato") = Range("J7").Value ' ved ikke om den skal bruges, den kommer på senere
            .Fields("Regnr") = Range("D78").Value
            .Fields("Kontonr") = Range("D79").Value
            .Fields("Cpr") = Range("D80").Value
            .Fields("Dagsdato") = Range("J4").Value
            .Fields("Kronisksyg") = Trim(Range("G78").Value)
            .Fields("Bemærkning") = Range("B83").Value & Range("B84").Value
        For I = 1 To 6
          If I < 6 Then .Fields("Bil regnr" & I) = Range("B" & 64 + I).Value ' der er kun 5 biler
            .Fields("Produktnr" & I) = Produkter(I, 2)
            .Fields("Produkttekst" & I) = Produkter(I, 3)
            .Fields("Ikraftdato" & I) = Range("J7").Value
            ' her kan indsættes flere i serier
      Next
            ' tilpas til aktuel tabel
            .Update ' gem den nye record
            .Close
           
' **********************************  har rettet hertil ( Louise) ****************************

End With
'
'
Set rs = Nothing

End Sub


Public Sub FindProdukter()
Dim X As Byte
X = 1
For Each C In Range("D11:D62")
If C <> "" Then
Produkter(X, 1) = C ' denne indeholder antallet af det enkelte produkt , skal det ikke bruges. ?
For I = 2 To 3
Produkter(X, I) = C.Offset(0, I - 1)
Next
X = X + 1
End If
Next
End Sub


Men den afspiller ikke alle mine første subs - hvad gør jeg..
Avatar billede kabbak Professor
24. marts 2004 - 23:39 #1
(Men den afspiller ikke alle mine første subs - hvad gør jeg)

kan du nævne dem ved navn, dem der ikke afspilles. ?
Avatar billede maria.cand Nybegynder
24. marts 2004 - 23:46 #2
HEj med dig igen det går ikke lige så godt for mig alle de koder du lavede har min chef bedt mig om at smide i en knap og nu er der intet der virker det er forskelligt nogle gange afspiller den ikke timereg andre gange opdaterkunde
Avatar billede maria.cand Nybegynder
24. marts 2004 - 23:48 #3
den indsætter også kun en gang imellem emne nr..jeg er virkelig ved at gå ud af mit gode skid med denne opgave
Avatar billede kabbak Professor
24. marts 2004 - 23:55 #4
Prøv at samle dine 4 subs i samme modul(Kundedata), når du har gjort det, så slæt alle de moduler der ikke skal bruges.

Hvis du er usikker på om det går at slette dem, kan du eksportere dem først.
Avatar billede maria.cand Nybegynder
24. marts 2004 - 23:56 #5
kabbak problemet er at jeg slet ikke er inde i det her - er vant til at arbejde i access
Avatar billede maria.cand Nybegynder
24. marts 2004 - 23:57 #6
systemet skal tages i brug imorgen - og jeg er slet ikke færdig - Jeg kan ikke se hvad jeg gør galt har prøvet og prøvet den registere kun data i en af databaserne
Avatar billede kabbak Professor
24. marts 2004 - 23:58 #7
Hvorfor har du så ikke lavet alt i Access, der kan du jo også programmere. ?
Avatar billede kabbak Professor
25. marts 2004 - 00:10 #8
man fjerner et modul ved at højreklikke på det, vælg remove + modulnavn, nu får du valget om du vil eksportere den først.
Avatar billede maria.cand Nybegynder
25. marts 2004 - 00:12 #9
Fordi kunden vi arbejder for i den marketings virk jeg er i vil kun aflevere skema i excel og derfor mener min at det skal foregå på den måde.. jeg vil hoppe i send - 1000 tak for din store hjælp;-) det sætter jeg pris på nat
Avatar billede kabbak Professor
25. marts 2004 - 00:14 #10
nat nat
Avatar billede maria.cand Nybegynder
30. marts 2004 - 20:27 #11
hmm jeg har problemer med koden her igen KABBAK - du har vel ikke lige 5 min.
Avatar billede kabbak Professor
31. marts 2004 - 00:02 #12
Du skal have en global bolean til at styre om det, den afbryder subben hvis du fortryder undervejs.

Hvis du også har en msgbox i de andre 2 subs, "TimeReg" og "RydArk" så skal du sætte  Opdater = False , ligesom jeg har gjort i "opdaterkundedata".

Bolean'en hedder Opdater, det er den lige her under, den skal stå øverst uden for subben.

Dim Opdater As bolean

Sub OPdaterSalg()
Opdater = True
    TimeReg
If Opdater = False Then Exit Sub
    opdaterkundedata
If Opdater = False Then Exit Sub
    RydArk
End Sub


Sub opdaterkundedata()

Dim Antal As Byte
Antal = 0

BilAbbNormal:
For Each C In Range("D26:D29") ' Normal abb.
  If C.Value <> "" Then
      For Each CE In Range("B65:B69") ' hvis en af felterne med reg.nr er udfyldt, så ok
        If CE.Value <> "" Then
        GoTo BilSuper
        End If
      Next CE
    MsgBox "Der skal indtastes Registrerings nummer på bil(er)"

    Opdater = False ' NY LINIE

    Exit Sub
  End If
Next C
BilSuper:
  If Range("D30").Value <> "" Or Range("D31").Value <> "" Then ' BilSuper og BilSuper kombirabat
      For Each CE In Range("B65:B69") ' tjekker om der er mere end 1 bil
          If CE.Value <> "" Then
          Antal = Antal + 1
          End If
        Next
    If Antal = 0 Then
      MsgBox "Der Skal indtastes registrerings nummer på en' bil"

      Opdater = False ' NY LINIE

        Exit Sub
  ElseIf Antal > 1 Then
        MsgBox "Der må kun indtastes registrerings nummer på en' bil" & vbLf _
        & "Når der er valgt Bil Super"

      Opdater = False ' NY LINIE

        Exit Sub
    End If
End If

DataOK:

Call FindProdukter ' her finder den de valgte produkter



Datasti = "C:\Documents and Settings\smallsystems\Skrivebord\VITUS CRM\Prologic\Prologic marketing den. 23-03-04\Nyeste\Ny mappe\Ordre.mdb"
  ' Lav en forbindelse til Access databasen
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
    "Data Source=" & Datasti & ";"
   
    Set rs = New ADODB.Recordset
    ' Åben et emnemain data del
    If MsgBox("Tjek om data er korrekt inden de indsættes i kundedatabasen?", vbQuestion + vbOKCancel, "Skal de indsættes i TimeReg?") = vbCancel Then

Opdater = False ' NY LINIE

Exit Sub
End If
        With rs
            .Open "DataFraExcel where [EmneNr]= '" & Range("J5").Value & "'", cn, adOpenKeyset, adLockOptimistic, adCmdTable
            If .EOF Then
                .AddNew ' Ny kunde
                .Fields("EmneNr") = Range("J5").Value
            Else
          '    If MsgBox("Kunden eksisterer - skal kundebasisdata opdateres ?", vbYesNo, "Kunde eksisterer") = vbNo Then
          '          .Close
          '          GoTo nokundeupdate
              ' End If
               
            End If

  ' tilføj værdier til hvert felt i recorden
            .Fields("Navn") = Range("E4").Value
            .Fields("Adresse") = Range("E5").Value
            .Fields("PostNr") = Range("E6").Value
            .Fields("TelefonNr") = Range("H7").Value
            .Fields("Fødselsdag") = Range("J6").Value
            .Fields("Phoner id") = Range("E7").Value
            .Fields("Omsætning") = Range("G72").Value
          ' .Fields("Ikraftdato") = Range("J7").Value ' ved ikke om den skal bruges, den kommer på senere
            .Fields("Regnr") = Range("D78").Value
            .Fields("Kontonr") = Range("D79").Value
            .Fields("Cpr") = Range("D80").Value
            .Fields("Dagsdato") = Range("J4").Value
            .Fields("Kronisksyg") = Trim(Range("G78").Value)
            .Fields("Bemærkning") = Range("B83").Value & Range("B84").Value
        For I = 1 To 6
          If I < 6 Then .Fields("Bil regnr" & I) = Range("B" & 64 + I).Value ' der er kun 5 biler
            .Fields("Produktnr" & I) = Produkter(I, 2)
            .Fields("Produkttekst" & I) = Produkter(I, 3)
            .Fields("Ikraftdato" & I) = Range("J7").Value
            ' her kan indsættes flere i serier
      Next
            ' tilpas til aktuel tabel
            .Update ' gem den nye record
            .Close
           
' **********************************  har rettet hertil ( Louise) ****************************

End With
'
'
Set rs = Nothing

End Sub


Public Sub FindProdukter()
Dim X As Byte
X = 1
For Each C In Range("D11:D62")
If C <> "" Then
Produkter(X, 1) = C ' denne indeholder antallet af det enkelte produkt , skal det ikke bruges. ?
For I = 2 To 3
Produkter(X, I) = C.Offset(0, I - 1)
Next
X = X + 1
End If
Next
End Sub
Avatar billede maria.cand Nybegynder
31. marts 2004 - 00:31 #13
Den compiler allerde her Dim Opdater As bolean
Avatar billede maria.cand Nybegynder
31. marts 2004 - 00:38 #14
kan jeg mangle en reference??
Avatar billede maria.cand Nybegynder
31. marts 2004 - 00:42 #15
Jeg har prøvet lidt af hver den vil bare ikke virke!!
Avatar billede kabbak Professor
31. marts 2004 - 00:44 #16
jeg havde stavet bolean forkert det er boolean.

har sendt ark
Avatar billede maria.cand Nybegynder
31. marts 2004 - 01:16 #17
Virker perfekt - tak endnu en gang
Avatar billede maria.cand Nybegynder
31. marts 2004 - 01:16 #18
svar så du kan få point;-)
Avatar billede kabbak Professor
31. marts 2004 - 01:19 #19
et svar ;-))
Avatar billede maria.cand Nybegynder
31. marts 2004 - 01:20 #20
Ja du skal lige huske at trykke svar;-)
Avatar billede maria.cand Nybegynder
31. marts 2004 - 01:21 #21
Ikke blot kommentar
Avatar billede kabbak Professor
31. marts 2004 - 01:22 #22
.
Avatar billede maria.cand Nybegynder
31. marts 2004 - 01:23 #23
Sådan endnu en gang 1000 1000 tak for prof og hurtig hjælp!!
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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